Session 会话超时和多个Web应用程序
在我当前的项目中,我面临一个奇怪的问题: 我在Glassfish 3.1服务器上部署了多个基于Spring MVC的web应用程序,并且我需要能够根据各自web.xml中的“sesion timeout”参数为用户“超时”,无论用户在哪个应用程序上。请不要问为什么应用程序处于不同的战争中——架构就是这样。用户通过WebApp A登录,并被重定向到WebApp B-然后用户可以继续跳转到不同的web应用-我想你明白了。WebAppB等也有很多Ajax调用(我甚至不打算去那里)。我想,问题归结为我无法在WebApp A和WebApp B之间共享会话数据这一事实(我在这里可能错了,这就是我需要帮助的地方),因此我无法通过检查来知道Session 会话超时和多个Web应用程序,session,web-applications,spring-mvc,timeout,Session,Web Applications,Spring Mvc,Timeout,在我当前的项目中,我面临一个奇怪的问题: 我在Glassfish 3.1服务器上部署了多个基于Spring MVC的web应用程序,并且我需要能够根据各自web.xml中的“sesion timeout”参数为用户“超时”,无论用户在哪个应用程序上。请不要问为什么应用程序处于不同的战争中——架构就是这样。用户通过WebApp A登录,并被重定向到WebApp B-然后用户可以继续跳转到不同的web应用-我想你明白了。WebAppB等也有很多Ajax调用(我甚至不打算去那里)。我想,问题归结为我无
httpServletRequest.getSession(false)
在WebAppB中,因为它在第一个请求命中WebAppB和第一个请求“在”会话超时后返回null。我必须在WebAppA的会话中保留“某物”,并在WebAppB的会话中检查它是否存在——这让我回到了在web应用程序中共享会话数据的问题。我不能使用DB存储,因为这意味着每次请求都要调用DB。通过谷歌搜索,我得到了一个方向,Tomcat中的“crossContext”在这种情况下很有用——但类似的东西在Glassfish中会有帮助吗(我最近发现sun-web-app.xml有一个“crossContextAllowed”属性)
我已经被这个问题困扰了很长一段时间了,我甚至不确定这个问题是否值得你花时间回答——所以提前感谢你的帮助
Trishul我无法帮助您实现Glassfish,但您需要的是Web应用程序之间的单点登录 要实现这种形式的SSO,通常需要做两件事:
Servlet/JavaEE容器通常提供SSO领域/会话管理器或等效工具的示例,这些示例将直接实现您所需的内容,或者您可以根据自己的需要进行微调。感谢BGR的回复。我会再等几个小时,看看有没有人回复。否则我会把你的标记为正确。再次感谢。