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场景.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容