【发布时间】:2011-03-05 08:40:57
【问题描述】:
我在 Spring 框架中注销时遇到问题。
首先,当我希望 j_spring_security_logout 为我处理它时,我得到 404 j_spring_security_logout not found: 示例-security.xml:
<http>
<intercept-url pattern="/messageList.htm*" access="ROLE_USER,ROLE_GUEST" />
<intercept-url pattern="/messagePost.htm*" access="ROLE_USER" />
<intercept-url pattern="/messageDelete.htm*" access="ROLE_ADMIN" />
<form-login login-page="/login.jsp" default-target-url="/messageList.htm"
authentication-failure-url="/login.jsp?error=true" />
<logout/>
</http>
JSP 页面中用于注销的示例 url 链接:
<a href="<c:url value="/j_spring_security_logout" />">Logout</a>
当我尝试使用自定义 JSP 页面时,即为此目的使用登录表单时,我会得到更好的结果,至少它可以进入登录页面,但另一个问题是你不会被注销,因为你可以直接输入应该保护的网址无论如何你都可以通过它。
对之前的列表稍作修改:
<http>
<intercept-url pattern="/messageList.htm*" access="ROLE_USER,ROLE_GUEST" />
<intercept-url pattern="/messagePost.htm*" access="ROLE_USER" />
<intercept-url pattern="/messageDelete.htm*" access="ROLE_ADMIN" />
<form-login login-page="/login.jsp" default-target-url="/messageList.htm"
authentication-failure-url="/login.jsp?error=true" />
<logout logout-success-url="/login.jsp" />
</http>
<a href="<c:url value="/login.jsp" />">Logout</a>
感谢您的帮助
【问题讨论】:
-
嗨,我已经完成了 javascript 并传递了 csrf 令牌,但是一旦注销我就无法再次登录.. 注销后我的登录页面显示了一些 csrf 令牌,这与当我不同时重新加载登录页面,无法再次登录,提示
http://192.168.6.51:8044/EWTS/auth/login_check;jsessionid=403A583CDDC688292408C7C76CD09F2D?targetUrl=not found -
注销后如何移除csrf token???
标签: spring-security