spring security裏面專門的一個模塊session managementspring
定義session監聽器監聽會話登陸事件,再講該session事件
交由spring security來處理,spring security自己提供了對這一事件處理的支持,包括
不少定義好的session策略來處理監聽好的session事件session
1.定義session監聽器ide
在SecurityConfig配置類中註冊(該類是繼承了WebSecurityConfigurerAdapter類的 ).net
@Bean public HttpSessionEventPublisher httpSessionEventPublisher() {
return new HttpSessionEventPublisher();
}繼承
2. 官方的源碼裏面這個關於HttpSessionEventPublisher裏面的設置是禁用的,因此咱們在啓用HttpSessionEventPublisher 重寫這個類事件
public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {
@Override protected boolean enableHttpSessionEventPublisher() {
return true;
}get
}源碼
3. 在SecurityConfig類中it
@Override protected void configure(HttpSecurity http) throws Exception {io
http.sessionManagement().invalidSessionStrategy(invalidSessionStrategy);
}
4.實現 InvalidSessionStrategy 重寫 onInvalidSessionDetected
@Component public class MyInvalidSessionStrategy implements InvalidSessionStrategy{
@Override public void onInvalidSessionDetected(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
system.out.println("會話失效,須要登陸");
}
}