spring-security 在Sping Boot 应用程序2.0中向用户发出会话超时警告消息

cbeh67ev  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(138)

我想在登录页面中向用户显示消息“由于不活动而注销”。
我尝试了以下代码在 Spring 安全,但它没有影响。
sessionManagement().maximumSessions(1).expiredUrl("/login?expired")的安全性。
会话超时后,仅将其重定向到/login,未获得过期值。
使用以下版本:
Spring Boot 2.0
Spring 安全5.0

wswtfjt7

wswtfjt71#

这只是我的整个配置的一个片段,但是它将检查会话是否只对经过身份验证的用户过期。当你使用.maximumSessions(1)时,你要处理的是并发用户管理。这不是你需要的。
在下面的代码片段中,我检查所有传入的请求是否经过身份验证.anyRequest().authenticated()。如果请求来自一个经过身份验证的用户(我不检查角色),并且会话超时.sessionManagement().invalidSessionUrl(),则将它们重定向回包含登录表单的索引页。

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
      http.authorizeRequests()
          .anyRequest().authenticated()
          .and()
          .sessionManagement().invalidSessionUrl("/?sessionexpired=true");
  }

}

相关问题