10.12 会话管理-Spring Security用户手册-Java-IT技术博客

与HTTP会话相关的功能由SessionManagementFilterSessionAuthenticationStrategy接口的组合处理,过滤器委托该接口。 典型的用法包括防止会话固定保护攻击,检测会话超时以及限制已认证用户可以同时打开多少个会话。


10.12.1检测超时

您可以配置Spring Security来检测提交的无效会话ID,并将用户重定向到适当的URL。 这是通过session-management元素实现的:

<http>
...
<session-management invalid-session-url="/invalidSession.htm" />
</http>

请注意,如果使用此机制来检测会话超时,则在用户注销然后重新登录而不关闭浏览器的情况下,它可能会错误地报告错误。 这是因为在使会话无效时不会清除会话cookie,即使用户已注销,会话cookie也会重新提交。 您可能能够在注销时显式删除JSESSIONID cookie,例如通过在注销处理程序中使用以下语法:

<http>
<logout delete-cookies="JSESSIONID" />
</http>

不幸的是,不能保证它可以与每个servlet容器一起使用,因此您需要在您的环境中对其进行测试


  如果您正在代理后运行应用程序,则还可以通过配置代理服务器来删除会话cookie。 例如,使用Apache HTTPD的mod_headers,以下指令将通过在注销请求的响应中将其过期而删除JSESSIONID cookie(假设应用程序已部署在/ tutorial路径下):

<LocationMatch "/tutorial/logout">
Header always set Set-Cookie "JSESSIONID=;Path=/tutorial;Expires=Thu, 01 Jan 1970 00:00:00 GMT"
</LocationMatch>




第1页    第2页    第3页    第4页    第5页    第6页    

标签: Spring SecuritySpring文档Spring Security中文教程SpringSecurity手册