Spring Security(13)——session管理

这篇博客详细介绍了Spring Security在session管理方面的功能,包括检测session超时、并发控制和session固定攻击保护。通过配置<security:session-management>元素,可以实现超时重定向、限制同一用户并发登录及防范session固定攻击。对于session超时,可以通过invalid-session-url属性指定重定向页面。在并发控制中,通过max-sessions属性限制并发会话数量,并通过error-if-maximum-exceeded决定超出限制时的行为。同时,文章还讨论了session固定攻击的防护策略,包括migrateSession、none和newSession三种模式。
摘要由CSDN通过智能技术生成

 

       Spring Security通过http元素下的子元素session-management提供了对Http Session管理的支持。

 

1.1     检测session超时

       Spring Security可以在用户使用已经超时的sessionId进行请求时将用户引导到指定的页面。这个可以通过如下配置来实现。

   <security:http>

      ...

      <!-- session管理,invalid-session-url指定使用已经超时的sessionId进行请求需要重定向的页面 -->

      <security:session-management invalid-session-url="/session_timeout.jsp"/>

      ...

   </security:http>

 

       需要注意的是session超时的重定向页面应当是不需要认证的,否则再重定向到session超时页面时会直接转到用户登录页面。此外如果你使用这种方式来检测session超时,当你退出了登录,然后在没有关闭浏览器的情况下又重新进行了登录,Spring Security可能会错误的报告session已经超时。这是因为即使你已经退出登录了,但当你设置session无效时,对应保存session信息的cookie并没有被清除,等下次请求时还是会使用之前的sessionId进行请求。解决办法是显示的定义用户在退出登录时删除对应的保存session信息的cookie。

   <security:http>

      ...

      <!-- 退出登录时删除session对应的cookie -->

      <security:logout delete-cookies="JSESSIONID"/>

      ...

   </security:http>

       此外,Spring Security并不保证这对所有的Servlet容器都有效,到底在你的容器上有没有效,需要你自己进行实验。

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值