文章目录
退出原理
- 清除
Cookie
- 清除当前用户的
remember-me
记录 - 使当前
session
失效 - 清空当前的
SecurityContext
- 重定向到登录界面
Spring Security的退出请求(默认为/logout)由LogoutFilter
过滤器拦截处理。
退出的实现
1 . 主页中添加退出链接
<a href="/signOut">退出</a>
2 . 配置MerryyouSecurityConfig
......
.and()
.logout()
.logoutUrl("/signOut")//自定义退出的地址
.logoutSuccessUrl("/register")//退出之后跳转到注册页面
.deleteCookies("JSESSIONID")//删除当前的JSESSIONID
.and()
......
效果如下
源码分析
LogoutFilter#doFilter
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res