springboot + security 自定义session过期处理方式

本文探讨了在SpringBoot集成Security时,如何处理Session过期的问题。默认的Session过期策略可能会导致不理想的结果,因此需要自定义策略。通过重写`onExpiredSessionDetected`方法并在`SessionManagementConfigurer`中配置,可以实现期望的Session过期行为。特别注意设置contentType以避免编码问题,否则可能导致中文乱码。
摘要由CSDN通过智能技术生成

security校验session校验是在ConcurrentSessionFilter,在doFilter方法里可以看到如果session过期会执行方法

this.doLogout(request, response);
this.sessionInformationExpiredStrategy.onExpiredSessionDetected(new SessionInformationExpiredEvent(info, request, response));

先做退出操作,在执行session过期策略,这个策略的初始化是在SessionManagementConfigurer.getExpiredSessionStrategy

SessionInformationExpiredStrategy getExpiredSessionStrategy() {
    if(this.expiredSessionStrategy != null) {
      return this.expiredSessionStrategy;
    } else if(this.expiredUrl == null) {
      return null;
    } else {
      if(this.expiredSessionStrategy == null) {
        this.expiredSessionStrategy = new SimpleRedirectSessionInformationExpiredStrategy(this.expiredUrl);
      }

      return this.expiredSessionStrategy;
    }
  }

所以如果你没有设置默认的策略和expiredU

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值