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