我希望向用户显示消息为"由于不活动而消失了#34;在登录页面。
我在spring security中尝试了以下代码,但它没有受到影响。
在httpsecurity中,sessionManagement()。maximumSessions(1).expiredUrl(" / login?expired")。
会话超时后,简单地将其重定向到/ login,没有获得过期的值。
使用以下版本:
Spring boot 2.0
Spring security 5.0
答案 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");
}
}