如何在两个不同的tomcat实例中部署的两个Web应用程序之间共享会话

时间:2012-06-27 15:35:51

标签: java session spring-security single-sign-on josso

我有两个不同的Web应用程序在两个不同的tomcat实例上运行。我需要有一个包含两个应用程序链接的公共页面。但我应该只能登录一次,并且应该能够访问其他应用程序中的链接而不会被要求再次登录。 有办法吗?

5 个答案:

答案 0 :(得分:3)

查看josso您可以用来在整个应用程序中创建解决方案的单点登录

答案 1 :(得分:1)

您可以使用令牌参数,其中令牌可以是用户名/加密的某些凭据。您可以在2个应用中验证凭据是否正确。

另一种方法是,如果您的应用程序位于同一个域下,则会设置Cookie并从中重新创建会话。

答案 2 :(得分:1)

感谢您的回复。我们最终决定使用Spring安全性提供的Pre身份验证过滤器来满足此要求以及用于验证的身份验证令牌

答案 3 :(得分:0)

最简单的方法是提供中央身份验证服务(CAS):单点登录。它为您的应用程序提供集中访问控制和身份验证。 Spring Security有一个CAS模块,可以无缝集成CAS。为此,您需要设置CAS服务器。

有关CAS如何工作和实施的更多信息,请参阅文档。

Spring-Security Documentation

CAS architecture

答案 4 :(得分:0)

另一种方法是创建Tomcat集群并维护集群下2个节点之间的会话复制。 请参阅Tomcat手册,了解如何创建Tomcat集群并启用会话复制。 您可以使用Spring RMI更新关于会话信息等的每个其他节点App上下文...