Ich habe eine Spring-basierten Web-Anwendung auf Tomcat 7. Was ich tue, um es auszuführen, kopieren Sie die Archiv in das Webapps-Verzeichnis und starten Sie den Server, also meine Anwendung Wurzel ist verfügbar unter https://localhost:8443/application/
.Spring Security Context ist null beim Zugriff auf Tomcat-Anwendung ohne Schrägstrich
Dann wollte ich Spring Sicherheit (3.2.4) zu ihm hinzufügen. Ich möchte die gesamte Anwendung sichern, nicht nur Teile davon. Die Frühlings-Sicherheitskonfiguration Ich habe:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd">
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Und in web.xml
:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Es ist eine grundlegende Konfiguration, die in den offiziellen Dokumenten und viele Tutorials zu finden ist. Alles funktioniert gut, wenn ich nicht authentifiziert bin Spring leitet mich auf seine Standard-Login-Seite um. Ich kann mich dann anmelden und kann auf die Anwendung zugreifen, bis die Sitzung abläuft oder ich zur Abmelde-URL navigiere.
Das Problem beginnt zu zeigen, wenn ich auf den Anwendungsstamm ohne den folgenden Schrägstrich zugreifen: https://localhost:8443/application
.
Frühling nicht den Sicherheitskontext zu finden:
2016-07-19 17:48:36,650 DEBUG: security.web.FilterChainProxy -/at position 1 of 12 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
2016-07-19 17:48:36,650 DEBUG: web.context.HttpSessionSecurityContextRepository - HttpSession returned null object for SPRING_SECURITY_CONTEXT
2016-07-19 17:48:36,650 DEBUG: web.context.HttpSessionSecurityContextRepository - No SecurityContext was available from the HttpSession: [email protected] A new one will be created.
ich dann bekommen umgeleitet zur Login-Seite, aber nachdem ich in ich ohne den Schrägstrich auf die ursprüngliche URL erhalten umgeleitet einzuloggen, Frühling nicht wieder, und ich sehe das Anmeldeformular erneut.
Weiß jemand, warum passiert das? Meine Konfiguration ist minimal, verwendet Standardeinstellungen. Der Anwendungsfall ist auch sehr einfach und es fühlt sich seltsam an, dass dies nicht wie erwartet funktioniert. Ich fühle, dass ich etwas Grundlegendes vermisse, entweder mit Spring oder Tomcat.
Jede Hilfe wird geschätzt, danke.
Das hat leider nicht geholfen, immer noch das gleiche Ergebnis. –