处理用户的多个同时HttpSessions

时间:2014-03-07 10:53:33

标签: http tomcat servlets portlet

长话短说,我必须告知第三方Web服务,该服务遵循一个奇怪的业务逻辑,当用户登录和注销时,在我的J2ee Portal中。所以我正在关注她的httpSession开始/结束/超时

但是用户可以创建多个httpSession,例如打开多个浏览器。在这种情况下,当httpSession结束时,无论是通过超时还是退出,如果我通知第三方服务,它将使一些对象无效,并导致其他生活的httpSession出现问题。

我可以想出很多方法来解决这个问题,例如:

  1. 防止每个用户多个httpSession,扩展登录过程。
  2. 对用户的httpSessions进行计数(堆栈逻辑),并仅在最后一次HttpSession结束且第一次hhtpSession启动时通知第三方服务
  3. 只是向用户提供一条错误消息,表明她不应该使用多个浏览器,并强制重复登录。
  4. 告诉第三方开发人员处理他们的问题。毕竟,我不应该为他们笨拙的商业逻辑负担。
  5. 但是我觉得我在这里重新发明了轮子,而且我错过了一个明显更好和广泛采用的练习

    您认为处理多个同步httpSessions的最便捷方式

1 个答案:

答案 0 :(得分:1)

是否要在前端修复此问题(例如限制用户登录两次)或在后端修复此问题(例如,将您的后端实施和缓存从HTTP会话中删除。

随着用户越来越多移动,我觉得您应该去修复后端问题并相应地调整您的架构。

我知道这并不能完全回答你的问题,但我觉得这是软件架构的一个重要方面。在我看到这种需求的95%的应用程序中,它不是出于商业原因(这实际上是有意义的)而是作为技术解决方案。