作者:蓝雄威,叩丁狼教育高级讲师。原创文章,转载请注明出处。
一、前言
单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁,用下面的图来说明。单点注销难点在于在其中一个系统注销之后,需要把其他的子系统的会话销毁.所以肯定需要子系统在令牌校验通过之后,统一认证中心要把该子系统的地址和会话记录起来.才能在注销的时候找到这些子系统通,依次调用子系统通的注销方法,销毁局部会话.
二、单点注销流程图
三、代码实现
客户端(注意:两个客户端项目都得改):
步骤:
1.在两个客户端项目中修改main.jsp
,让退出的地址映射到统一认证中心的登出方法.<a href="http://www.sso.com:8443/logOut" >退出</a>
2.在
SSOClientFilter.java
校验令牌信息token的时候,还需要把该系统的登出地址和该系统的会话id一并的发送到统一认证中心.修改SSOClientFilter.java
的doFilter
方法@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; HttpSession session = req.getSession(); //1.判断是否有局部的会话 Boolean isLogin = (Boolean) session.getAttribute("isLogin"); if(isLogin!=null && isLogin){ //有局部会话,直接放行. c
SSO单点登录教程(五)自己动手写SSO单点注销服务端和客户端
本文由叩丁狼教育高级讲师蓝雄威撰写,详细讲解了SSO单点注销的流程和实现,包括客户端和服务器端的代码修改、注销流程梳理以及测试步骤。通过模拟的单点注销流程图和实际操作,帮助读者理解并实践单点注销功能。
摘要由CSDN通过智能技术生成