开源地址:
第一版本已经完成
[添加链接描述](https://gitcode.net/kiduo08/yuantai-sso.git)
功能介绍 本篇是基于HttpSession技术实现的单点登录,权限认证基于标准OAuth2协议、支持分布式Session共享的SSO单点登录功能。
HttpSession 服务端的技术
服务器会为每一个用户 创建一个独立的HttpSession
HttpSession原理
当用户第一次访问Servlet时,服务器端会给用户创建一个独立的Session
并且生成一个SessionID,这个SessionID在响应浏览器的时候会被装进cookie中,从而被保存到浏览器中
当用户再一次访问Servlet时,请求中会携带着cookie中的SessionID去访问
服务器会根据这个SessionID去查看是否有对应的Session对象
有就拿出来使用;没有就创建一个Session(相当于用户第一次访问)
域的范围:
Context域 > Session域 > Request域
Session域 只要会话不结束就会存在 但是Session有默认的存活时间(30分钟)
技术框架
开发框架 SpringBoot
认证技术 基于OAuth2
数据库 Mysql
缓存 Redis
项目结构
yuantai-sso
├── sso-common-code -- 客户端通用代码
├── sso-redis -- 客户端Redis依赖,分布式redis支持
├── sso-db -- 客户端数据库依赖
├── sso-client -- 客户端
├── sso-authentication -- 认证中心
SSO登录原理-时序图
单点登录页面
单点登录成功页面
参考了众多系统设计包含单不限于许雪里xxl-sso等,希望大家在评论区提出宝贵意见。敬请期待第二篇文章。
|