概述

单点登录指的是有一个中央的单点登录服务器,各个子系统和这个中央的单点登录服务器打交道,比如有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设置为删除。

 

     

posted on 2019-05-03 08:40  自由港  阅读(986)  评论(0编辑  收藏  举报