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里取来用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值