我们在Struts2中开发了两个应用程序( abc 和 def ),并与用于SSO的CAS服务器3.2集成在一起,并部署在多个主机(IP)上。该部署架构图如下。 SSO在下面的部署中运行良好,没有问题。
我们已经部署了具有两个实例(端口为 8080 和 8081的tomcat)的相同的两个CAS客户端( abc 和 def ) )。请参见下面的部署架构图。使用此SSO不能正常工作,但单点登录仍可以正常工作,但是当用户从 abc 应用程序(其运行在 Host2 的 8081 端口上)注销时然后会话过期请求将转到 def 应用程序(其运行在 Host2 的 8080 端口上)。使用此用户不会从 def 应用程序(其运行在 Host2 的 8081 端口上)注销(会话未过期)。
也许这是我也不知道的愚蠢问题。如何解决这个问题。任何人都可以帮助我。在上述两种情况下,URL是相同的http://domain.in/abc/login.do或http://domain.in/def/login.do
更新:
从 abc 注销,仍保持在应用程序 def 中。
看起来您正在尝试在此处实现某种集群吗?
是的。我想实现从所有CAS客户端的一次注销。但是这里没有发生。如上所述,注销命令正在发送到其他实例。
在同一节点之间是否有会话复制 应用程序设置?
粘性会议。
您如何将来自客户端(或来自CAS)的流量路由到 单个应用节点?
负载均衡器