Spring Security Logout Redirect不包括GET参数

时间:2014-11-25 16:37:56

标签: spring spring-security

我已经运行了一个Spring security 3.2.5.RELEASE应用程序并具有以下配置:

<intercept-url pattern="/Login.html*" access="IS_AUTHENTICATED_ANONYMOUSLY" />

并且,在同一个<http>标签内......

<logout invalidate-session="true" 
             logout-success-url="/Login.html?msg=logout" 
             delete-cookies="JSESSIONID" />

<http&gt;中的其他端点element要求用户进行身份验证,并invalid-session-url="/Login.html"

注销后,我的浏览器似乎被重定向到Login.html?msg=logout,然后再次重定向到Login.html

Chrome debug window.

这让我认为/Login.html*没有正确匹配,我不确定如何更改拦截网址以允许匹配。

1 个答案:

答案 0 :(得分:0)

所以看起来最近升级到Spring Security 3.2.5.RELEASE已经改变了我们的应用程序处理无效会话的方式。 access="IS_AUTHENTICATED_ANONYMOUSLY"现在似乎仍然检查无效会话,当重定向到网址Login.html?msg=logout时,仍在服务器上解析sessionId。由于它不再是有效的sessionId,因此客户端被重定向到invalid-session-url

我的解决方案是将Login.html页面放在自己的<http>标记中,security="none"

新的Login元素如下所示:

<http pattern="/Login.**" security="none"/>

注意:我还需要将公共资源路径放在自己的<http security="none">标记中,以便“登录”页面可以访问它们。