java - 具有多个 Web 应用程序的 CAS SSO

标签 java single-sign-on cas

我花了大约一天的时间查看 CAS,并设法让服务器使用一个简单的测试应用程序运行。当我进入 protected 区域时,我会重定向到登录页面 - 当我登录时,我会返回到之前的页面。

从这里开始,下一步将部署两个客户端应用程序,登录客户端 A,访问客户端 B 保护区,并让系统为我处理身份验证(因为我已经登录客户端 A)。

但这实际上并不起作用。无论是否登录客户端 A 站点,我都必须登录客户端 B 站点。

CAS 运行在 Tomcat 上,客户端 A 和 B 是在 JBoss AS 6 的单个实例上作为单独的 war 部署的同一个项目。

有什么想法可以实现建议的行为吗?

编辑:是的,两者都使用 CAS。问题在于它似乎无法识别用户已经登录。就好像 CAS 无法确定两个服务之间是否存在“链接”以及当一项服务已通过身份验证时,其他服务应该自动进行身份验证。

我应该注意,在这个阶段,我没有在应用程序中使用 SSL。在介绍 SSL 之前,我重点介绍一个简单的示例并使用 HTTP。

最佳答案

您的两个应用程序都需要配置为使用 CAS 服务器进行身份验证。正常的过程是应用程序 A 将您重定向到 CAS 登录页面,让您登录并重定向回 A。如果您随后尝试登录 B,它会向 CA 服务器检查您是否已经登录并,如果是,则发回有关登录用户的信息。

同样,您的两个应用程序都需要支持 CAS 作为登录机制,但从您的描述中我不确定这一点。

CAS协议(protocol)的详细描述可以found here .

关于java - 具有多个 Web 应用程序的 CAS SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6133483/

相关文章:

java - 如何设置为 0 通知计数 android firebase

spring - 环境变量-Spring、Tomcat

angular - Angularfire/Firebase 实现了哪些 OAuth Flow?

java - Alfresco+cas 不工作验证

java - SSO 中的 CAS 身份验证多个 Restful Web 服务

java - 类中 getConstructors() 中的通用类型

java - Array Can't Initialised Properly 它缺少 4 和 8 为什么在下面的代码中?

具有反向引用的 Java 正则表达式交集

ruby-on-rails - OmniauthCallbacksController#azure_activedirectory_v2 中的参数错误

.net - 跨平台 SSO - 从哪里开始?