SpringSecurity如何处理logout注销操作
发布日期:2021-06-29 15:52:29 浏览次数:2 分类:技术文章

本文共 1565 字,大约阅读时间需要 5 分钟。

项目配置

当使用WebSecurityConfigurerAdapter时,会自动应用注销功能。默认情况下,访问URL /logout将通过以下方式注销用户:

  • 校验HTTP Session
  • 清除RememberMe认证信息
  • 清理 SecurityContextHolder
  • 重定向到 /login?logout

自定义配置

protected void configure(HttpSecurity http) throws Exception {
http .logout(logout -> logout .logoutUrl("/my/logout") .logoutSuccessUrl("/my/index") .logoutSuccessHandler(logoutSuccessHandler) .invalidateHttpSession(true) //默认为true .addLogoutHandler(logoutHandler) .deleteCookies("cookieNamesToClear") //一个显式添加CookieClearingLogoutHandler的快捷方式。 ) ...}

1、配置了logoutSuccessHandler就会忽略logoutSuccessUrl

2、deleteCookies((“name”) 是显式添加CookieClearingLogoutHandler的快捷方式。

和addLogoutHandler(new CookieClearingLogoutHandler(“name”))效果相同

LogoutHandler

通常,LogoutHandler实现指出能够参与注销处理的类,要求进行必要的清理工作。因此,不应该抛出异常。常见的实现类:

LogoutSuccessHandler

public interface LogoutSuccessHandler {
void onLogoutSuccess(HttpServletRequest var1, HttpServletResponse var2, Authentication var3) throws IOException, ServletException;}

LogoutFilter成功注销后调用LogoutSuccessHandler,以处理例如重定向或转发到适当的目的地。注意,该接口几乎与LogoutHandler相同,但可能引发异常。

实现类:

  • HttpStatusReturningLogoutSuccessHandler

HttpStatusReturningLogoutSuccessHandler适合在REST API类型的场景中使用。此LogoutSuccessHandler允许您提供一个要返回的普通HTTP状态代码,而不是在成功登出时重定向到一个URL。如果没有配置,则默认返回状态码200。

转载地址:https://console.blog.csdn.net/article/details/116464373 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Spring Security认证成功或失败的事件监听
下一篇:Spring Security 之用户名/密码 认证

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月19日 05时32分48秒