将url重定向到另一个应用程序

时间:2012-05-03 07:39:05

标签: java hibernate java-ee struts

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

我试图用session.setattribute做这件事,但无处可去。

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

3 个答案:

答案 0 :(得分:1)

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

正如您已经发现的那样,Web应用程序之间不会共享会话。实际上,Java Servlet规范中没有针对此的规定。根据您使用的应用程序服务器和部署架构,有number of proprietary solutions用于此目的。最简单的示例是您使用的是tomcat,并且所有应用程序都部署到同一个虚拟主机和领域(并使用相同的域)。然后,您可以使用single sign-on valve

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您无法通过HttpSession直接在两个独立的应用程序之间进行通信。您需要做的是使用cookie来实现这种沟通。

另请查看at this thread,因为您的可能与此相似。