3

我正在使用 Spring-Security 3.1。在我添加会话管理的 invalid-session-url 属性之前,它已正确重定向到注销页面。但是,在添加 invalid-session-url 后,即使我单击注销按钮,它也会重定向到会话过期页面。此外,如果我加载登录页面,在会话超时期限之后,它会重定向到会话过期页面。

如果会话过期,我必须检查会话过期并将用户重定向到会话过期页面。但是,在使用 invalid-session-url 标签后,即使在登录和注销情况下,它也会将我重定向到会话过期页面。

在某些帖子中,建议不要使用 invalid-session-url。但是,我无法理解在实际会话过期后如何显示会话过期页面。

任何帮助将不胜感激。

4

3 回答 3

3

默认情况下,注销过程会首先使会话失效,从而触发会话管理重定向到超时页面。通过指定 invalidate-session="false" 将修复此行为。

    <sec:logout logout-success-url="/logout" invalidate-session="false" 
delete-cookies="JSESSIONID" />
于 2013-01-03T00:39:29.057 回答
2

会话到期仅限于在提交的请求中检测无效的会话 cookie。如果您的注销没有删除会话 cookie,那么如果您再次访问该站点,它将重新提交,这将触发无效的会话 URL。这在参考手册中有说明。我会阅读它和随附的脚注。如那里所述,您需要删除会话 cookie,这取决于您的容器可能会或可能不会起作用。

于 2012-05-08T07:36:15.327 回答
2

尝试在您的安全配置中添加以下内容。

<http>
    <logout delete-cookies="JSESSIONID" />
</http>
于 2012-06-26T15:55:12.603 回答