单点登录(XXL-SSO)实现(一)基于session实现

单点登录

XXL-SSO链接:https://www.xuxueli.com/xxl-sso/

XXL-SSOdemo:https://gitee.com/xuxueli0323/xxl-sso

1.为什么需要SSO单点登录系统?

在大型互联网公司中,公司旗下可能会有很多个子系统,实现每个登录实现统一管理。

2.SSO单点登录系统设计原理

 3.构建SSO单点登录认证授权系统

4.XXL-SSO源码分析

注意事项:由于该框架在集成redis插件中,没有在配置文件中设置redis密码;因此当redis需要密码登陆时可在JedisUtil.getInstance()方法中加上jedisShardInfo.setPassword(“密码”);

session方式

问题1:访问客户端的时候,如何自动重定向到认证授权中心的?

答:使用过滤器,配置XxlSsoFilter;查询本地cookie判断是否存在会话信息,如果没有 则重定向到认证授权中心

流程:

1.每个项目访问接口时都会经过XxlSsoWebFilter.doFilter()方法

2.验证是否cookie中是否含有sessionId,如果为空则将请求地址重定向到认证授权中心中

3.在认证授权中心登陆以后会存将用户信息到存储到redis中,并重定向到先前的访问地址中;在重定向的url中会拼接上sessionId

4.重定向到先前的访问地址后,会再次经过XxlSsoWebFilter.doFilter()方法;当查询到sessionId不为空后,利用该sessionId去redis中获取相应的用户信息,并将sessionId缓存在用户浏览器的cookie中

原文地址:https://www.cnblogs.com/lch-Hao/p/13068649.html