0
点赞
收藏
分享

微信扫一扫

Spring Security认证_退出登录和退出处理器

Spring Security认证_退出登录和退出处理器_java
在系统中一般都有退出登录的操作。退出登录后,Spring Security进行了以下操作:

  • 清除认证状态
  • 销毁HttpSession对象
  • 跳转到登录页面

配置退出登录的路径和退出后跳转的路径

//退出登录配置
http.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login.html")
.clearAuthentication(true)
.invalidateHttpSession(true);

在网页中添加退出登录超链接

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
<head>
<meta charset="UTF-8">
<title>主页面</title>
</head>
<body>
<h1>主页面</h1>
<a href="/logout">退出登录</a>
</body>
</html>

Spring Security认证_退出登录和退出处理器_后端_02
Spring Security认证_退出登录和退出处理器_html_03

退出成功处理器

Spring Security认证_退出登录和退出处理器_java_04
我们也可以自定义退出成功处理器,在退出后清理一些数据,写法如下:

自定义退出成功处理器

/**
* @Author yqq
* @Date 2022/05/17 18:09
* @Version 1.0
*/
public class LogoutSuccessHandler implements org.springframework.security.web.authentication.logout.LogoutSuccessHandler {
@Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
System.out.println("清楚一些数据");
response.sendRedirect("/login.html");
}
}

配置退出成功处理器

//退出登录配置
http.logout()
.logoutUrl("/logout")
// .logoutSuccessUrl("/login.html")
.logoutSuccessHandler(new LogoutSuccessHandler())
.clearAuthentication(true)
.invalidateHttpSession(true);

测试

Spring Security认证_退出登录和退出处理器_spring_05
Spring Security认证_退出登录和退出处理器_java_06
Spring Security认证_退出登录和退出处理器_html_07


举报

相关推荐

0 条评论