Open X-rapido opened 6 years ago
由于最近比较忙,没来得及处理问题,望谅解。 我给出的建议可以是这样:
org.jasig.cas.client.authentication.AuthenticationFilter
下的属性casServerLoginUrl
配置为客户端的登录地址需解决问题:
@kawhii 楼主好,根据您提出的方案我们在上周做了相关尝试,如果子系统A,B,C没有经过前后端分离,使用Iframe这种方式还是可以的。
另外看到有关JWT的方式,请问下大哥有没有好的思路或Demo来实现多项目之间SSO效果。这样,就可以不使用Iframe嵌套方式了。
我自己看了下官网,流程图是可以看明白的,但是在代码编写上,通过RestAPI方式获取到CAS自动产生的JWT字符串之后,不太明白接下来该怎么操作了,比如Client怎么来验证JWT正确性。
您若有时间可以随时跟我沟通,非常感谢。
参考文章 1、https://apereo.github.io/cas/5.2.x/installation/Configure-ServiceTicket-JWT.html 2、http://blog.csdn.net/cuo9958/article/details/53580466
关于问题报描述
楼主你好,您的文章教程非常的赞,小弟收获良多,目前有如下需求,您看能不能帮忙给出一个好的解决方案,非常感谢。
需求描述
目前有6个单独的子项目A、B、C、D、E、F,都有各自的客户端登录界面(6个),现在要实现SSO效果,所以加上了一个CAS-Server服务
我想实现的效果是:登陆界面还是在客户端(不是在Server端增加主题登录界面方式)实现【同域名、不同域名】之间的SSO
举例: 1、当我访问子项目 A 的受保护资源时,跳转到 A 的登录界面。(其他子项目同理) 2、子项目 A 登录界面输入用户名,密码实现 CAS登录成功。 3、当我访问任意子项目(B、C、D、E、F)的受保护资源时,用于 A 已经登录过了,所以可以直接访问 4、当我在任意子项目(B、C、D、E、F)登出时,全局实现登出效果。
业务场景
由于项目众多,很难在CAS服务端以增加修改主题的方式来实现SSO,协同起来也不是很方便, 例如:天猫、淘宝、1688、淘宝联盟等项目。页面风格不同,但是最终页面提交的地址一样。假设修改天猫的登录页面,我想也不是在服务器端来修改主题,然后重新部署,这样肯定会对其他子项目登录有所影响。(仅仅假设) 所以希望在各自子项目中修改登录方式来实现单点登录。
项目环境
CAS Server:5.2.2 CAS Client:3.5.0
其他:Maven/Gradle、IDEA、Tomcat
小弟QQ:1056856191