【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
我做开发时碰到了一个问题,cas单点登录在同一个域名不同的应用中可以正常登录,但是不能单点登出。
我这个项目的要求是所有的模块应用的域名端口必须统一,二级域名也要全部一致,这是第一条件,想改变这个是不允许的。
但是这样之后统一登出就无法实现了。
我的系统中
www.a.com/cas
www.a.com/main
www.a.com/bgpt
这样区分里面的子系统。
cas的登出配置只能配置到域名,所以这些子系统一个都不能正确退出登录。
大家有什么办法解决吗?
我之前在想,把cas的源代码进行修改使用,但是找了好几天没找到对应的代码进行修改。内部太复杂。
1.熟悉他的框架(有点难)
2.用自己熟悉的框架去实现新的,基于CAS的流程(咱就这么做的,工作闲的时候做的,只要单点认证那一块还是比较快能做好)
难么,不难啊,修改几个类就能实现你想要的了
重写 CasAuthenticationEntryPoint ,Cas20ServiceTicketValidator ,LogoutFilter就搞定了
给你看看我修改的吧
这几个类都是url判断关键判断位置,只要继承了重写,满足你这个都是小问题