这个原理类似第三方登录,目前bladex的第三方登录流程是这样的:
1. 登录页点击第三方按钮,这里比如选择 github
2. 跳转到github,输入账号密码后授权
3. 授权后自动跳转回bladex登录页并携带token
4. 登录页截取token,调用登录认证接口,返回框架本身的token
5. 前端获取token成功,跳转到主页面
现在集成CAS后,CAS也会返回token信息并且携带跳转,那么就可以直接跳转到上述第四步然后这么操作:
1. 登录页截取CAS的token,调用CAS认证接口
2. 模仿SocialTokenGranter,写一个CasTokenGranter,根据token调用外部接口获取用户信息的逻辑
3. 获取到用户信息后,组装BladeUser并且返回bladex本身系统的token
4. 前端获取token成功,跳转至主页面
5. 如此一来就可以不用改造bladex内部业务系统了