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("会话失效,须要登陆");
}
}