2

我需要将单独的浏览器会话合并为一个。请仔细阅读我,我知道来自同一浏览器实例的多个选项卡或窗口会自动执行此操作。但是,我有相同浏览器的单独实例,它们共享相同的总统会话池。这意味着如果我强制执行会话 cookie 持久性选项,任务会自动解决。但是,没有多少应用服务器支持该选项。像 WebSphere 这样的一些服务器提供了记住我的选项,但是它设置了一个有限信任的持久 cookie,因此可以提示用户输入登录信息。所以我需要一些想法。我目前可以看到一种方法

  1. 当用户从一个实例签名时,会建立一些持久性 cookie,保留一些令牌。
  2. 令牌是一些持有会话对象的单例映射中的键
  3. 任何请求会话但未获得会话的 servlet 代码,可以检查 cookie 并使用令牌从会话映射中获取会话
  4. 会话侦听器在终止时从会话映射中删除会话

我需要你的意见

  1. 可能的安全问题
  2. 可能的资源泄漏
  3. 在集群中扩展解决方案感谢您的任何想法,但请不要试图说服我我没有用例。如果您想了解用例,请私信我。
4

1 回答 1

0
  1. 如果使用服务器上的密钥和一些不可重复的会话标识符为用户会话加密 cookie 数据,那么您只需要担心可以使用 ssl 缓解的“中间人”。

  2. 我不认为这是一个问题,因为您说您的服务器会话有一个滑动到期,并且您的服务器应该在达到该到期时回收资源。

  3. 除非您使用一些后备存储来支持粘性会话持久性,否则您的用户会话将在故障转移期间丢失。

另外,请记住,您的身份验证 cookie 仅适用于发布它的域。

于 2013-10-22T02:20:31.823 回答