Spring security默认实现了用户退出的功能,用户退出主要考虑退出后会话如何管理以及跳转到哪个页面。HttpSecurity类提供了logout()方法开启退出登录的支持,默认触发用户退出操作的URL为“/logout”,用户退出时同时也会清除Session等默认用户配置。 用户退出登录的逻辑是由过滤器LogoutFilter执行的,但是项目开发时一般不会选择直接操作LogoutFilter,而是通过LogoutConfigurer对LogoutFilter进行配置,HttpSecurity类logout()方法的返回值就是一个LogoutConfigurer对象,该对象提供了一系列设置用户退出的方法。
用户退出的主要方法
方法 | 作用 |
logoutUrl(String logoutUrl) | 用户退出处理控制URL,默认为post请求的/logout |
logoutSuccessUrl(String logoutSuccessUrl) | 用户退出成功后的重定向地址 |
logoutSuccessHandler( LogoutSuccessHandler logoutSuccessHandler) | 用户退出成功后的处理器设置 |
deleteCookies(String... cookieNamesToClear) | 用户退出后删除指定Cookie |
invalidateHttpSession( boolean invalidateHttpSession) | 用户退出后是否立即清除Session,默认为true |
clearAuthentication( boolean clearAuthentication) | 用户退出后是否立即清除Authentication用户认证信息,默认为true |
案例:用户退出
1.设置用户退出的请求路径
项目后台首页main.html右上方有一个“注销”菜单,可以在该菜单中设置用户退出的请求路径
<a th:href="@{/logout}"><span class="hidden-xs">注销</span>
</a>
2.效果测试
重启项目。
使用正确的用户信息登录后进入后台首页,单击后台首页页面右上角的“注销”。