1.bug描述:
使用 SpringSecurity 的logout登出之后,不允许用户再次登录。这是因为系统的并发登录数没有减小,并且此时达到了最大登录并发数,maxSessionsPreventsLogin又设置为true,该用户就会不允许再次登录。
2.问题原因:
首先我配置了并发控制,将最大并发登录数设为1,同时maxSessionsPreventsLogin设为true,这意味着,同一个账号,后登录的不会挤掉先登录的,而是会不允许登录。
//配置会话管理
http.sessionManagement(session->{
//配置会话失效之后的跳转处理
session.invalidSessionStrategy(new MyInvalidSessionHandle());
//并发控制
session.maximumSessions(1)
.maxSessionsPreventsLogin(true);
3.解决办法:
暂时只能将maxSessionsPreventsLogin设为false ,让后登录的挤掉先登录的,或者自定义登出的操作,这个可能是一个SpringSecutiry的官方bug吧。