我正在使用Spring-Security 3.1。在我添加会话管理的invalid-session-url属性之前,它正确地重定向到注销页面。但是,在添加invalid-session-url之后,即使我单击“注销”按钮,它也会重定向到会话过期页面。 此外,在会话超时期限之后,如果我加载登录页面,它会重定向到会话过期页面。
如果会话过期,我必须检查会话到期并将用户重定向到会话过期页面。但是,在使用invalid-session-url标记之后,即使是登录和注销方案,它也会将我重定向到会话过期页面。
在某些帖子中,建议不要使用invalid-session-url。但是,我无法理解,在实际会话到期后,我将如何能够显示会话过期页面。
任何帮助将不胜感激。
答案 0 :(得分:3)
默认情况下,注销过程将首先使会话无效,从而触发会话管理重定向到超时页面。通过指定invalidate-session =“false”将解决此问题。
<sec:logout logout-success-url="/logout" invalidate-session="false"
delete-cookies="JSESSIONID" />
答案 1 :(得分:2)
会话到期仅限于检测已提交请求中的无效会话cookie。如果您的注销没有删除会话cookie,那么如果您再次访问该站点将重新提交,这将触发无效的会话URL。这在the reference manual中有解释。我会读到这个和随附的脚注。如此处所述,您需要删除会话cookie,根据您的容器,可能会或可能不会。
答案 2 :(得分:2)
尝试在安全配置中添加以下内容。
<http>
<logout delete-cookies="JSESSIONID" />
</http>