spring security 管理 httpsession

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("會話失效,須要登陸");

    }

}

相關文章
相關標籤/搜索