我有以下问题。客户有一个在EAServer 5.5.0中运行的Java应用程序,并带有自定义日志记录。登录非常简单,当应用程序验证用户通过网页输入的凭据时,将用户名和配置文件存储在会话变量中。这样,应用程序就会知道会话是否仍处于活动状态。现在,客户有另一个运行在jboss服务器7.1上的Java应用程序,并且希望当用户登录运行在EAServer上的web应用程序时,同时登录运行在Jboss服务器上的应用程序,而忽略任何进一步的步骤。
我的第一个想法是通过ajax调用将凭据从EAServer发送到Jboss web应用程序,并将凭据存储在会话中,这与EAServer的方式相同。这在Internet Explorer上似乎工作得很好,但在chrome或firefox中,ajax调用已经完成,会话变量是在jboss中创建的,但是当用户试图在Jboss应用程序上查看任何视图时,会话变量就会消失。
有人能告诉我做这件事最好的方法或练习是什么吗?或者我在使用chrome和firefox时遇到了什么问题,在ajax调用后不能保留会话变量?
发布于 2016-06-30 07:00:26
你可以这样做的一种方式是在评论中使用Leonardo Luiz suggested单点登录。
但我有另一个建议。只需安装Redis并将其用作会话存储即可。这是当今非常标准的,在Ruby on Rails,NodeJs和Java中也被广泛使用。
一些库可能会让您更好地工作:
Spring Session
Tomcat Redis Session Manager (我知道您使用的是不同的servlet服务器,但是您仍然可以看一看,了解一下)
或者,您可以选择使用memcached。在这种情况下,您可以使用:
发布于 2016-06-30 06:46:48
您需要的功能称为Single sign-on。我认为在您的环境中集成现有的解决方案比创建自定义解决方案更好。
为此,我已经使用了两种解决方案:
这不是一项轻松的任务,需要一些安全方面的知识。
如果你真的想创建一个自定义的解决方案,这里有一些信息:http://merbist.com/2012/04/04/building-and-implementing-a-single-sign-on-solution/
https://stackoverflow.com/questions/38110849
复制相似问题