在两个tomcat服务器上的两个应用程序之间保持JSP会话存活

时间:2012-09-16 18:38:56

标签: jsp session

您好我想在两个不同的应用程序之间保持相同的会话,这两个应用程序在2个tomcat服务器上运行。我有一个应用程序在一台服务器上运行,登录时会创建一个会话。如果我单击应用程序上的链接,它将被重定向到另一个tomcat服务器上的第二个应用程序。那时,它应该保持第一个服务器中的相同会话。之后,如果它返回到第一个服务器中的应用程序,它不应该再次请求身份验证。它应该使用相同的会话。

有没有办法在JSP中的2个tomcat服务器之间传递会话ID 或详细信息

任何人都可以提供帮助。

3 个答案:

答案 0 :(得分:2)

我认为您可能需要SSO(单点登录)解决方案。所以这些是免费提供的和一些开源的:

  1. Open AM(之前是开放式SSO)
  2. JOSSO(Java open Single Sign-On)
  3. CAS(中央身份验证服务)
  4. 您也可以按照上述here的方法,使用Servlet过滤器在这两个Web应用程序中构建一些自定义安全性。

    注意:只有在您不想使用任何SSO解决方案时,才能寻找自定义解决方案(这将是一次痛苦但是很好的学习;-));由于给出Reinvent-the-wheel

    的原因,我建议不要here

    希望这有帮助。

答案 1 :(得分:0)

如果你在同一台机器上使用两个tomcat服务器,那么服务器就有不同的端口,例如一个有8080,第二个8081。

现在你可以简单地将请求转发到具有设置属性的第二个应用程序,并记住在url中提供第二个应用程序jsp的完整路径,

http://localhost:8081/2nd_application/page.jsp

JSP有4个范围:Application,Session,Request和Page。

此处使用请求范围是我的权利。

答案 2 :(得分:0)

只需将resp.encodeRedirectURL()resp.sendRedirect()一起使用。

像这样:

response.sendRedirect(response(encodeRedirectURL("outputpage.jsp"))

希望提供了正确的解决方案。