Printemps de sécurité de déconnexion de la manipulation
Selon Printemps De Sécurité 4.0.0 document:
4.2.4 Déconnexion De La Manipulation
La déconnexion de l'élément ajoute la prise en charge de déconnexion, en accédant à un
URL particulière. La déconnexion par défaut l'URL est /déconnexion, mais vous pouvez le régler
pour quelque chose d'autre à l'aide de la déconnexion-url de l'attribut. Plus d'informations sur
d'autres attributs peuvent être trouvés dans l'espace de noms de l'annexe.
Cependant, en suivant le paramètre de sécurité dans la doc, l'URL /déconnexion n'affiche pas la page de déconnexion. Au lieu de cela, il montre
Au contraire, l'URL /login fonctionne correctement.
Voici ma configuration:
Framework Spring 4.1.6
Printemps De Sécurité 4.0.0
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Test8</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<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>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/security-config.xml</param-value>
</context-param>
</web-app>
security-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<http>
<intercept-url pattern="/**" access="hasRole('USER')" />
<form-login />
<logout />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="aaa" password="111" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="bbb" password="222" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
- codeproject.com/Tips/521847/Logout-Spring-s-LogoutFilter cela peut-il vous aider?
- Je suis confronté au même problème dans mon application. Il a bien fonctionné avec la version 3.2.7, et depuis que j'ai mis à 4.0.1 il n'existe pas de cartographie /url de déconnexion plus.
Vous devez vous connecter pour publier un commentaire.
Printemps de sécurité active automatiquement csrf, qui automatiquement désactivé OBTENIR des déconnexions.
Vous pouvez résoudre ce problème en désactivant la protection csrf par les paramètres
<csrf disabled="true"/>
dans le<http>
, ou tout simplement à l'aide d'un POST.Voir http://docs.spring.io/spring-security/site/docs/4.0.1.RELEASE/reference/htmlsingle/#csrf-logout
Simplement, placez le code suivant dans la page jsp où vous voulez avoir la déconnexion-
Entrée correspondante dans la fève fichier de configuration-
-Ce qui a fonctionné pour moi pour le printemps-sécurité-4.*
https://docs.spring.io/spring-security/site/docs/5.1.0.RELEASE/reference/htmlsingle/
Manipulation Des Déconnexions
Lors de l'utilisation de la WebSecurityConfigurerAdapter, déconnexion capacités sont automatiquement appliquées. La valeur par défaut est que l'accès à l'URL /déconnexion pour déconnecter l'utilisateur par:
Invalider la Session HTTP
Nettoyage de tous les RememberMe d'authentification qui a été configuré
De compensation de la SecurityContextHolder
Rediriger vers /login?déconnexion
Semblable à la configuration de la connexion capacités, cependant, vous avez également différentes options pour personnaliser davantage votre déconnexion exigences:
Offre de déconnexion de soutien. Ceci est automatiquement appliquée lors de l'utilisation de WebSecurityConfigurerAdapter.
L'URL qui déclenche log out (la valeur par défaut est /déconnexion). Si la protection CSRF est activé (par défaut), alors la demande doit aussi être un POST. Pour plus d'informations, veuillez consulter la JavaDoc.
L'URL de redirection après déconnexion a eu lieu. La valeur par défaut est /login?fermeture de la session. Pour plus d'informations, veuillez consulter la JavaDoc.
Vous permet de spécifier une coutume LogoutSuccessHandler. Si cela est spécifié, logoutSuccessUrl() est ignoré. Pour plus d'informations, veuillez consulter la JavaDoc.
Spécifier si pour invalider la HttpSession au moment de la déconnexion. C'est le cas par défaut. Configure le SecurityContextLogoutHandler sous les couvertures. Pour plus d'informations, veuillez consulter la JavaDoc.
Ajoute un LogoutHandler. SecurityContextLogoutHandler est ajouté comme dernier LogoutHandler par défaut.
Permet de spécifier les noms des témoins pour être retiré lors de la déconnexion de la réussite. C'est un raccourci pour ajouter un CookieClearingLogoutHandler explicitement.
Noter qu'il n'y a pas de "page de déconnexion". l' /déconnexion est le Printemps du point de terminaison, qui permettent de Printemps savoir que l'application demande de déconnexion d'un utilisateur, de sorte qu'il appelle un gestionnaire spécifique.
Après l'enregistrement de l'utilisateur, le Printemps redirige vers une autre page, et vous pouvez configurer la "cible par défaut" dans votre XML.
Ajouter à la Sécurité Printemps:
sous http tag