【发布时间】:2013-09-05 07:26:09
【问题描述】:
我是 Spring Security 的新手。我正在关注本教程
http://www.mkyong.com/spring-security/spring-security-form-login-example/
当我们请求欢迎页面时一切正常,它重定向到登录表单,然后在输入凭据后给出欢迎页面。问题是当我单击注销时它确实注销但欢迎页面仍然可以访问我们我点击 ...@ localhost/SpringSecurity2/welcome 并且它不要求登录。我猜它与会话有关,但没有得到如何解决这个问题。我也使用了 delete-cookies="JSESSIONID" 但它不起作用。
我只想在用户注销并再次点击欢迎 url 时。他应该被引导到登录表单而不是欢迎页面,因为它需要身份验证。很快需要帮助 我的安全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-3.0.3.xsd">
<http auto-config="true">
<intercept-url pattern="/welcome*" access="ROLE_USER" />
<form-login login-page="/login" default-target-url="/welcome"
authentication-failure-url="/loginfailed" />
<logout
logout-success-url="/logout" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="mkyong" password="123456" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
【问题讨论】:
-
将此添加到您的注销标签中,并且您应该在您的应用程序中实现 logoutSuccessHandler。 -
我已经这样做了,但那不起作用..它给出了 404 错误,它无法找到注销。你能告诉我如何实现 logoutsuccesshandler。
-
检查您的 loginController 以及您为注销方法返回的内容。我说的是映射页面。
-
听起来好像是缓存问题。如果您使用 Spring Security 3.2,则可以使用新的标头支持来解决此问题。见blog.springsource.org/2013/08/23/…
-
我已经从mkyong.com/spring-security/spring-security-form-login-example 下载了源代码并将其构建到
war。然后我部署到tomcat,它工作正常。我建议您也这样做并比较文件以找出您缺少的内容。
标签: spring spring-security logout