zoukankan      html  css  js  c++  java
  • 自己开发SSO单点登录

    概述

    单点登录指的是有一个中央的单点登录服务器,各个子系统和这个中央的单点登录服务器打交道,比如有A,B两个子系统。

    A登录后,B系统就不用再登录,直接可以访问,当其中有一个子系统选择注销时,那么所有的子系统将都不能访问。

    术语:

    GID ,CAS服务器的全局cookieId

    SID, 子系统登录后产生的登录成功的ID

    单点登录的步骤如下:

    1.客户端方法子系统A,如果子系统已经登录,那么我们就直接访问系统。

    2.如果子系统没有登录的时候,那么子系统将会跳转到CAS服务器。

    3.CAS服务器会判断 全局的登录标志是否存在(GID)。

      1.如果存在

         则表示其他系统已经登录过,那么CAS服务器会产生一个随机码,在跳转回子系统A。

         子系统A使用这个随机码(SID),发送给CAS服务器,服务器验证这个随机码是有效的,

         CAS会将这个随机码和子系统的URL,存入到全局标志的一个map中。

         Map<String,Map<String,String>> map;

         键为 全局cookie标志(GID),值为 MAP,map 结构为 键 子系统随机码(SID),值为 子系统的URL

         子系统将存储这个随机码和session,保存到一个map中,并标记为子系统已经登录。

      2.如果不存在

          那么CAS跳转到登录界面,登录成功后,产生登录的全局COOKIE(GID)。

          并产生一个随机码(SID),跳转到子系统A,其他的步骤其实和上面说的一致。

    2.单点退出

    1.子系统跳转到cas服务器的登出URL

    2.登出URL会访问 GID ,通过GID可以,查找出 登录子系统的集合。

    3.遍历这个集合,向子系统发出退出登录命令,即发送 SID到各个子系统。

    4.子系统收到SID后,找出关联的session,并将session销毁,表示子系统退出。

    5.将全局cookie设置为删除。

         

  • 相关阅读:
    Paint类的介绍
    缓存淘汰算法之LRU
    Android SurfaceView实战 打造抽奖转盘
    android中scrollTo和scrollBy的理解
    Android View.onMeasure方法的理解
    Android Context 上下文 你必须知道的一切
    Android Animation简述
    Markdown 语法说明
    理解Java虚拟机体系结构
    Java集合框架:HashMap
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/10804281.html
Copyright © 2011-2022 走看看