Java Spring Wie erzwinge ich https ssl in webapplicationinitializer?

8

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?

%Vor%     
Robert Niestroj 13.02.2015, 21:45
quelle

7 Antworten

3

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:

%Vor%     
Adam 14.06.2015 22:34
quelle
1

Ich denke, Sie müssen die Registrierung des Servlets in den Griff bekommen und dann das Sicherheitselement registrieren. Versuchen Sie etwas wie folgt:

%Vor%     
John Thompson 18.02.2015 13:28
quelle
1

Wenn Sie Spring Security 3.2 verwenden, können Sie dies folgendermaßen tun.

%Vor%

auch mit http zu https port mappings.

%Vor%     
Robert 21.02.2015 01:02
quelle
0

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:

Ссылка

    
John Thompson 18.02.2015 02:44
quelle
0

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%     
jfcorugedo 06.10.2015 13:46
quelle
0
%Vor%     
Kamlesh Delat 24.09.2016 12:52
quelle
0

Keine der obigen Antworten sind gut genug, wenn Sie Spring Boot und External Tomcat verwenden. Hier die richtige Konfiguration:

super () muss aufgerufen werden und das vorhandene Dispatcher-Servlet muss aus dem vorhandenen Container übernommen werden.

%Vor%     
Davidea 30.08.2017 11:00
quelle