SSO单点登录教程(五)自己动手写SSO单点注销服务端和客户端

本文由叩丁狼教育高级讲师蓝雄威撰写,详细讲解了SSO单点注销的流程和实现,包括客户端和服务器端的代码修改、注销流程梳理以及测试步骤。通过模拟的单点注销流程图和实际操作,帮助读者理解并实践单点注销功能。
摘要由CSDN通过智能技术生成

作者:蓝雄威,叩丁狼教育高级讲师。原创文章,转载请注明出处。

一、前言

单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁,用下面的图来说明。单点注销难点在于在其中一个系统注销之后,需要把其他的子系统的会话销毁.所以肯定需要子系统在令牌校验通过之后,统一认证中心要把该子系统的地址和会话记录起来.才能在注销的时候找到这些子系统通,依次调用子系统通的注销方法,销毁局部会话.

二、单点注销流程图

单点注销流程
cookie和session存储结构

三、代码实现

客户端(注意:两个客户端项目都得改):

步骤:
1.在两个客户端项目中修改main.jsp,让退出的地址映射到统一认证中心的登出方法.

<a href="http://www.sso.com:8443/logOut" >退出</a>

2.在SSOClientFilter.java校验令牌信息token的时候,还需要把该系统的登出地址和该系统的会话id一并的发送到统一认证中心.修改SSOClientFilter.javadoFilter方法

    @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
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值