sso初探cas
概念
sso:single sign on
多个系统中,登录单个系统,可访问其他互相信任系统
问题点:
1、产生存储信任凭据
2、验证凭据
方案
同域:浏览器种cookie,服务器common session(redis、mysql)
不同域:
cas
1、用户没登录,直接302
2、重定向到cas server,但是没登录,展示登录页面
3、验证成功,种下cas server域名cookie TGC,重定向原始请求地址,添加server ticket参数
4、cas client向cas server 请求校验st
5、cas server 确认st有效
6、浏览器重定向到原始请求,app 域名下种下jessionid的cookie
7、浏览器访问,校验jessionid
8、用户再次访问,携带jessionid,校验通过
9、用户对app2发起请求,重定向到cas server
10、cas server域名已经有tgc,重定向原始地址,添加server ticket参数
11、cas client向cas server 请求校验st
12、cas server 确认st有效
13、浏览器重定向到原始请求,app 域名下种下jessionid的cookie
14、浏览器访问,校验jessionid
总结:
1、cas server 统一管理,充当session共享池;
2、tgt表示cas校验成功;jessionid表示app自己校验没问题
sso代码分析
1、自用spring boot注解,自动注入相关filter
FilterRegistrationBean:注册filter
FilterFactoryBean:生产filter的工厂,单例模式
public class FilterFactoryBean implements FactoryBean, BeanPostProcessor
@Override
public boolean isSingleton() {
return true;
}
2、用户信息的存与取
存:通过filter,获取用户信息(去sso服务器上拿,应该是存squirrel里了),放到ThreadLocal里;
取:从ThreadLocal里取来用
上一篇: SSO CAS集群配置
下一篇: 光猪六壮士电影:压力来袭怎么办?