2

我有一个带有登录 ID 和密码的应用程序。从这个应用程序中,单击某个菜单项,我想重定向到另一个具有登录 ID 和密码的应用程序。

我正在尝试这样做,session.setattribute但无处可去。

这两个应用程序都是使用 Struts 和 Hibernate 在 Java EE 上构建的。有人可以建议怎么做吗?

4

3 回答 3

1

您在这里寻找的是所谓的“单点登录”,即不同的应用程序在它们之间共享用户凭据,因此用户只需登录一次。

正如您已经发现的那样,Web 应用程序之间不会共享会话。实际上,Java Servlet 规范中对此没有任何规定。根据您使用的应用程序服务器和部署架构,有许多用于此目的的专有解决方案。最简单的示例是您使用的是 tomcat,并且您的所有应用程序都部署到相同的虚拟主机和领域(并使用相同的域)。然后您可以使用单点登录阀

于 2012-05-03T08:21:38.547 回答
0

由于您的应用程序部署在同一个域上,您可以在响应中添加带有身份验证令牌的 cookie,并在其他应用程序的请求中读取身份验证令牌的值。

我能想到的其他选项是,创建一个 Authenticated 值并将其放入数据库中,然后将此值作为请求参数将重定向请求发送到其他应用程序。您的其他应用程序可以读取该身份验证值并使用数据库进行验证,并让用户传递登录名和密码页面。

于 2012-05-03T07:54:15.740 回答
0

您不能直接通过 HttpSession 在 2 个单独的应用程序之间进行通信。您需要做的是使用 cookie 来实现这种通信。

也看看这个线程,因为你的似乎是那个线程的副本。

于 2012-05-03T08:16:52.697 回答