Spring-Security文档笔记之logout

1. logout

  • 使用session失效
  • 如果配置了rememberme, 则清除rememberme认证
  • 清除SecurityContextHolder
  • 重定向到 /login?logout

2. 自定义配置

protected void configure(HttpSecurity http) throws Exception {
    http
        .logout(logout -> logout                                                
            .logoutUrl("/my/logout")                                            
            .logoutSuccessUrl("/my/index")                                      
            .logoutSuccessHandler(logoutSuccessHandler)                         
            .invalidateHttpSession(true)                                        
            .addLogoutHandler(logoutHandler)                                    
            .deleteCookies(cookieNamesToClear)                                  
        )
        ...
}

如果要自定义logout功能, 可以添加LogoutHandler或LogoutSuccessHandler

3. LogoutHandler

LogoutHandler是用于定义logout功能, 主要是执行一些必要的清理. 这些类不应该抛出异常.

4. LogoutSuccessHandler

在logout成功后由LogoutFilter调用, 以处理转发或重定向功能. 与LogoutHandler功能几乎相同, 但它可抛出异常.
实现有:

  • SimpleUrlLogoutSuccessHandler
  • HttpStatusReturningLogoutSuccessHandler 适用于REST api场景.

你可能感兴趣的:(Spring-Security文档笔记之logout)