Um https in web.xml zu erzwingen, habe ich dieses Code-Snippet verwendet:
%Vor% Gibt es dafür in Spring Java Config eine Entsprechung? Ich habe bereits herausgefunden, dass ich ein ServletSecurityElement
brauche. Aber wie verbinde ich es mit dem Rest?
Wie John Thompson darauf hingewiesen hat, dass Sie genau dort waren. Sie mussten nur das Sicherheitselement hinzufügen, das Sie zum Servlet definiert hatten. Bei einer anderen Notiz bemerkte ich, dass Sie ""
als Parameter roleNames für HttpConstraintElement
hatten. Dies würde tatsächlich dazu führen, dass jeder, der die Rolle ""
nicht hatte, abgelehnt wird. Wenn Sie möchten, dass dies normal funktioniert (https), geben Sie keine Rollen. Am Ende hat das für mich funktioniert:
Ich denke, Sie müssen die Registrierung des Servlets in den Griff bekommen und dann das Sicherheitselement registrieren. Versuchen Sie etwas wie folgt:
%Vor%Was meinst du, verbinden Sie es mit dem Rest? Sieht aus, als hättest du dich festlegen sollen. Spring wird die Konfiguration des Java-konfigurierten WebApplicationInitializer automatisch erkennen.
Denken Sie daran, dass WebApplicationInitializer-Implementierungen erkannt wurden automatisch - so können Sie sie in Ihrem Paket verpacken Anwendung, wie Sie es für richtig halten.
Siehe:
Eine Möglichkeit besteht darin, einen HTTP-Filter in Ihrer Anwendung zu erstellen:
%Vor% Sie können den Filter mit einer Eigenschaft ein- / ausschalten, indem Sie @ConfigurationProperties
verwenden.
Außerdem sollten Sie den Header x-forwarded-proto
überprüfen, da einige Proxies (wie Heroku) das Protokoll aus der URL entfernen und in diesem Header speichern.
Und hier ist natürlich ein Komponententest dieses Filters:
%Vor%Tags und Links java https spring spring-java-config