0

我有以下问题。客户有一个在 EAServer 5.5.0 中运行的 Java EE Web 应用程序,带有自定义登录。登录非常简单,当应用程序验证用户通过网页输入的凭据时,将用户名和配置文件存储在会话变量中。这样应用程序就知道会话是否仍然存在。现在,客户在 jboss server 7.1 中运行了另一个 Java EE Web 应用程序,并且希望用户登录 EAServer 上运行的 Web 应用程序时,同时登录 Jboss Server 中运行的应用程序而无需任何进一步的步骤。

我的第一个想法是通过 ajax 调用将凭据从 EAServer 发送到 Jboss Web 应用程序,并将凭据存储在会话中,就像 EAServer 一样。这似乎在 Internet Explorer 上运行良好,但在 chrome 或 firefox 中完成了 ajax 调用,并且在 jboss 中创建了会话变量,但是当用户尝试查看 Jboss 应用程序上的任何视图时,会话变量就消失了。

有人可以告诉我这样做的最佳方法或做法是什么吗?或者我面临什么样的问题,在ajax调用后不会保留会话变量?

4

2 回答 2

1

您可以做的一种方法是莱昂纳多路易斯在评论中建议的单点登录。

但我有另一个建议。只需安装 Redis 并将其用作会话存储。现在这是非常标准的,它也广泛用于Ruby on RailsNodeJs和 Java。

一些可能会让你前进的图书馆:

春季会议

Tomcat Redis 会话管理器(我知道您使用的是不同的 servlet 服务器,但您仍然可以查看一下)

或者您可能会选择使用 memcached。在这种情况下,您可以使用:

内存缓存会话管理器

于 2016-06-29T23:00:26.260 回答
0

您需要的功能称为Single sign-on。我相信在您的环境中集成现有解决方案比创建自定义解决方案更好。

我已经为此使用了两种解决方案:

这不是一件容易的事,需要一些安全问题的知识。

如果您真的想创建自定义解决方案,这里有一些信息:http: //merbist.com/2012/04/04/building-and-implementing-a-single-sign-on-solution/

于 2016-06-29T22:46:47.783 回答