Ich habe kürzlich angefangen, über Spring Security zu lernen, und heute bin ich auf diese grundlegende (glaube ich) Frage gestoßen: Warum kann ich nicht auf den aktuellen Principal innerhalb eines Servlet-Filters zugreifen, wie in der folgenden Klasse gezeigt:
%Vor%Das mit Authentifizierung abgerufene Authentifizierungsobjekt auth = securityContext.getAuthentication (); ist null. Bei Verwendung des obigen Snippets funktioniert ein MVC @Controller problemlos (wie erwartet).
Warum passiert das?
Sie können hier , dass der Sicherheitsfilter an erster Stelle stehen muss, um auf den SecurityContext zugreifen zu können.
Wenn Sie fragen, wie es geht, hängt es von der Art ab, wie Sie Ihre Webanwendung konfiguriert haben. In meinem Fall verwende ich Spring-Boot, basierend auf dem Servlet-3-Konfigurationsstil und Spring-Kontext-Konfiguration in Java (kein XML) Also sieht meine Konfiguration so aus:
%Vor%Beachten Sie, dass Sie durch Festlegen der Reihenfolge die Filterreihenfolge steuern können.
Der gute alte web.xml Deployment Deskriptor ist eine einfache Möglichkeit, die Reihenfolge der Filter zu bestimmen. Aus der Servlet 3.0-Spezifikation: Die Reihenfolge, die der Container beim Erstellen der Filterkette verwendet, die für a bestimmte Anfrage-URI ist wie folgt:
Kurz gesagt, Sie müssen den Filter <filter-mapping>
für Sie nach dem für Spring security einfügen.
Auch aus dem gleichen Spezifikationsdokument: Wenn die Reihenfolge, in der die Listener, Servlets, Filter aufgerufen werden, wichtig ist für Anwendung muss dann ein Deployment Deskriptor verwendet werden.
Tags und Links spring spring-mvc spring-security servlets
Versuchen Sie es mit Shenzhen mit itunesconnect-Option:
%Vor%Im Falle von Jenkins wäre das der Typ "Execute Shell" des Build-Schritts.
oder Sie können altool verwenden: /Applications/Xcode.app/Contents/Applications/Application \ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool
Verwendung:
%Vor%Ich versuche zu verstehen, wie ich meinen aktuellen Workflow mit der Integration von Apple TestFlight in iTunes Connect implementieren kann.
Gegenwärtig habe ich einen Jenkins Continuous Integration Server, der jedes Mal, wenn jemand in github wechselt, einen neuen Build für TestFlight kompiliert und hochlädt.
Soweit ich sehen kann, gibt es für iTunes Connect keine offizielle Befehlszeilen-API zum Hochladen neuer Builds.
Ich kann es mir nicht leisten, jedes Mal, wenn ich einen Code ändere, 10 Apps manuell zu kompilieren und hochzuladen.
Wie kann ich diesen Workflow mit den vorhandenen Tools und iTunes Connect implementieren? (Jenkins, Bots, xcodebuild, Anwendungslader, etc ...)
Sie können testflight für einen sehr einfachen Upload Ihrer %code% -Datei auf Apple TestFlight verwenden. Der Vorteil von %code% über %code% ist, dass %code% den neuen Build für Tester tatsächlich aktiviert.