2

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

有什么方法可以在 JSP 中的 2 个 tomcat 服务器之间传递会话 ID或详细信息。

任何人都可以帮忙。

4

3 回答 3

2

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

  1. 打开 AM(以前打开 SSO)
  2. JOSSO(Java 开放式单点登录)
  3. CAS(中央认证服务)

您还可以按照此处提到的方法使用 Servlet 过滤器在这两个 Web 应用程序中构建一些自定义安全性。

注意:仅当您不想使用任何 SSO 解决方案时才选择自定义解决方案(这将是一种痛苦但很好的学习 ;-));由于此处给出的原因,我建议不要重新发明轮子

希望这可以帮助。

于 2012-09-17T07:31:03.997 回答
0

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

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

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

JSP 有 4 个作用域:Application、Session、Request 和 Page。

在这里使用 Request 范围是我的权利。

于 2012-09-16T18:57:00.193 回答
0

只需 resp.encodeRedirectURL()resp.sendRedirect().

像这样 :

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

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

于 2013-04-28T03:49:17.017 回答