Spring Security默认的退出登录URL为/logout,退出登录后,Spring Security会做如下处理:

  1. 是当前的Sesion失效;
  2. 清除与当前用户关联的RememberMe记录;
  3. 清空当前的SecurityContext;
  4. 重定向到登录页。

Spring Security允许我们通过配置来更改上面这些默认行为。

自定义退出登录行为

我们在Spring Security配置中添加如下配置:

......
.and().logout().logoutUrl("/signout").logoutSuccessUrl("/signout/success").deleteCookies("JSESSIONID")
.and()
......

上面配置了退出登录的URL为/signout,退出成功后跳转的URL为/signout/success,退出成功后删除名称为JSESSIONID的cookie。

在Controller中添加和/signout/success对应的方法:

@GetMapping("/signout/success")
public String signout() {return "退出成功,请重新登录";
}

接着将/signout/success添加到免认证路径里。启动项目,登录后访问/signout

可看到退出成功,并且请求重定向到了/signout/success

除了指定logoutUrl外,我们也可以通过logoutSuccessHandler指定退出成功处理器来处理退出成功后的逻辑:

@Autowired
private MyLogOutSuccessHandler logOutSuccessHandler;......
.and().logout().logoutUrl("/signout")// .logoutSuccessUrl("/signout/success").logoutSuccessHandler(logOutSuccessHandler).deleteCookies("JSESSIONID")
.and()
......

MyLogOutSuccessHandler实现LogoutSuccessHandler

@Component
public class MyLogOutSuccessHandler implements LogoutSuccessHandler {@Overridepublic void onLogoutSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {httpServletResponse.setStatus(HttpStatus.UNAUTHORIZED.value());httpServletResponse.setContentType("application/json;charset=utf-8");httpServletResponse.getWriter().write("退出成功,请重新登录");}
}

效果和上面一样:

7.Spring Security 退出登录相关推荐

  1. Spring Security 退出登录(7)

    Spring Security默认的退出登录URL为/logout,退出登录后,Spring Security会做如下处理: 使当前的Sesion失效: 清除与当前用户关联的RememberMe记录: ...

  2. spring security+jwt 登录认证

    spring security+jwt 登录认证 1.综述 2.版本与环境 3.架构 4.数据库认证逻辑图 5.案例 security+jwt 5.1引入依赖 5.2新建工具类 5.2新建组件类 5. ...

  3. Spring Security自定义登录验证及登录返回结果

    Spring Security自定义登录验证及登录返回结果 一.功能描述 二.处理逻辑 简单流程 自定义UserDetails 自定义UserDetailsDAO 自定义UserDetailsServ ...

  4. (二)Spring Security自定义登录成功或失败处理器

    目录 一:创建登录成功处理器 二:创建登录失败处理器 三:添加处理器 三. 项目地址 我们接着上一章 Spring Security最简单的搭建,进行开发 LoginSuccessHandler 和L ...

  5. spring session 退出登录 清理session

    2019独角兽企业重金招聘Python工程师标准>>> spring session 退出登录 清理session 博客分类: spring /*** Allows creating ...

  6. Spring Security MVC登录注销示例教程

    Spring Security MVC登录注销示例教程 今天我们将了解Spring Security Login Example.在阅读这篇文章之前,请先阅读我在"Spring 4 Secu ...

  7. Spring Security:自定义登录页面

    本文来说下Spring Security中如何自定义登录页面 文章目录 准备工作 自定义登录界面 本文小结 准备工作 添加模板引擎 这里使用了thymeleaf模板引擎,在pom.xml进行添加: & ...

  8. Spring Security默认登录页面

    使用Spring Security作为权限管理模块的小伙伴们一定醉心于其极少的配置即可满足权限管理需求,以及比springMVC更简洁的filter配置. 在刚开始技术验证的demo阶段相信很多人试过 ...

  9. spring Security 重复登录配置无效的问题

    关于spring Security重复登录的配置,百度一大堆,我这里就不啰嗦了. 今天碰到 按照网上的配置,但是 感觉配置无效,同一用户还是可以登录,不知道为什么,开始以为是自己配置的又问题.再三确认 ...

最新文章

  1. unity3d曲线text文本
  2. mysql和mdy_Liunx下安装MySql
  3. python ks检验_python – 使用Scipy的stats.kstest模块进行拟合优度测试
  4. Java中的JsonConfig详解
  5. redis 分布式锁 看门狗_redis分布式锁原理及实现
  6. Unity图片优化-Dither算法(RGBA16优化)
  7. wamp切换mysql版本_wampserver多版本php切换失败
  8. SSH学习2_ssh登陆卡住(expecting SSH2_MSG_KEX_ECDH_REPLY)
  9. TMS320F2837x开发例程使用手册(3)
  10. 微博音视频下载与合并
  11. 机器人控制学习机器编程代码_带上机器人,让他们维护我们的代码!
  12. 遥感图像变化检测数据集
  13. 如何制作Webp文件
  14. python 个例程序
  15. springboot整合rocketmq,支持多连接生产者和消费者配置。不同topic适配不同业务处理类
  16. 利用python 爬取豆瓣即将上映的电影
  17. 使用全加器实现补码的加减运算
  18. 羊皮卷之十 主啊,指引我
  19. 详细分析机器人伺服系统,对比国内外伺服代表产品
  20. 淘宝运营 动销率 售罄率两者区别 以及优化方案

热门文章

  1. 做科研发论文一直找不到研究热点?硕博导师都在关注的平台你还不快来?
  2. seaborn可视化散点图并自定义可视化结果图像的大小(Change the Size of a Seaborn Plot)
  3. pandas使用query函数和sample函数、使用query函数筛选dataframe中的特定数据行并使用sample函数获取指定个数的随机抽样数据
  4. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(添加均值、标准偏差)实战(dot plot)
  5. R语言可视化分面图、多变量分组多水平t检验、可视化多变量分组多水平分面条形图(faceting bar plot)并添加显著性水平、在标签和绘图上边框之间添加15%的空格、添加抖动数据点
  6. R语言dplyr包使用group_by函数、arrange函数和filter函数获取每个分组的第一个、第N个、最后一个记录实战
  7. 泊松回归(Poisson regression)、COX回归、分类器变回归器、回归算法注意事项、多重共线性问题
  8. Spark运行模式Local+Standalone+Yarn+mesos
  9. R语言包_manipulate
  10. Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决