会话管理
当浏览器调用登录接口成功后,服务端会和浏览器之间建立一个会话(Session
),浏览器会在每次发送请求时都会携带一个sessionID
,服务端根据这个SessionID
来判断用户身份,当浏览器关闭后,服务端的Session
并不会立即销毁,需要手动在服务端调用Session
销毁方法,或者等待Session
过期(默认30分钟)。
在 Spring Security 中与Session
相关的功能由SessionManagemenFilter
和SessionAutheaticationStrateey
接口来处理,SessionManagomentFilter
过滤器将Session
相关操作委托给SessionAuthenticationStrategy
接口去完成。
会话并发管理
会话并发管理就是指在当前系统中,同一个用户可以同时创建多少个会话,即可以同时在多少台设备上登录。默认情况下Spring Security并没有限制统同一账号在多少台设备上登录。
开启会话管理
httpSecurity.sessionManagement(httpSecuritySessionManagementConfigurer -> {
httpSecuritySessionManagementConfigurer.maximumSessions(1)
.maxSessionsPreventsLogin(false);
});
会话失效处理
// 会话管理
httpSecurity.sessionManagement(httpSecuritySessionManagementConfigurer -> {
httpSecuritySessionManagementConfigurer.maximumSessions(1)
.maxSessionsPreventsLogin(false).
expiredUrl("/app/login");
});
最后更新于
这有帮助吗?