概述
单点登录指的是有一个中央的单点登录服务器,各个子系统和这个中央的单点登录服务器打交道,比如有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设置为删除。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人