在spring boot app 2.0

时间:2018-02-09 10:44:14

标签: spring-boot spring-security thymeleaf

我希望向用户显示消息为"由于不活动而消失了#34;在登录页面。

我在spring security中尝试了以下代码,但它没有受到影响。

在httpsecurity中,

sessionManagement()。maximumSessions(1).expiredUrl(" / login?expired")。

会话超时后,简单地将其重定向到/ login,没有获得过期的值。

使用以下版本:

Spring boot 2.0

Spring security 5.0

1 个答案:

答案 0 :(得分:0)

这只是我整个配置的摘要,但这将检查会话是否仅针对经过身份验证的用户过期。使用.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");
  }

}