10

我有两个网络应用程序。我将登录到一个 Web 应用程序,然后通过第一个应用程序的链接或重定向导航到另一个应用程序。最后,在完成应用程序二中的一些步骤后,我将被重定向到应用程序一。我该如何实施?

这里应用程序二是通用的,我将拥有三个应用程序一的实例,它们将与应用程序二进行交互。

请提出更好的方法。我必须使用 spring 和 Spring Webflow 来实现它。

4

2 回答 2

11

从技术上讲,两个 Web 应用程序(两个不同的 WAR)之间的会话不能共享。这是出于安全原因而设计和完成的。我想对您的问题提出以下意见和建议,

  1. 会话通常使用会话 ID进行跟踪,会话 ID通常存储为浏览器上的 cookie 和服务器端的会话对象。
  2. 每次您发送请求时,此 cookie 都会发送到服务器端。
  3. cookie 将仅发送它来自的服务器。
  4. 因此,由 www.mysite.com/app1 设置的 cookie 将仅发送到 www.mysite.com/app1 而不会发送到 www.mysite.com/app2。
  5. 对于您的情况,要使用户会话在两个应用程序中有效,浏览器将需要从 app1 和 app2 设置两个 cookie。
  6. 一种方法是,当您使用 java 脚本登录 app1 时,也会向 app2 发送登录请求。当这两个请求都成功返回时,您的浏览器将拥有两个应用程序(app1 和 app2)的会话
  7. 现在注销会有自己的挑战,当你从app1注销时,你也需要从app2注销。从技术上讲,这意味着您需要从这两个应用程序中清除 cookie 集。在 java 脚本的帮助下,您可以做到这一点。
于 2013-01-10T14:59:36.633 回答
6

当您必须从 app1 调用 app2 时,通过请求对象(作为请求参数)传递所有必要的信息,然后 app2 可以在那里读取并创建会话(也许可以使用 servlet/过滤器)。

您可以使用集群在跨机器的同一应用程序(app1 和 app1)之间共享会话。

于 2013-01-10T10:53:23.987 回答