Tomcat:将会话ID转发到另一个Tomcat(无会话数据)

时间:2018-07-10 15:42:48

标签: java session tomcat

是否可以将会话ID仅从Tomcat A“转发”到Tomcat B,如下所示?

Browser --> Tomcat A --> Tomcat B

其中-->表示HTTP请求?

这个想法是,尽管A和B是具有独立会话数据的独立服务器,但我想在不同的Tomcat Web应用程序中为每个浏览器存档一个全局会话ID(类似于A作为“代理”)。

想法如下:当浏览器在没有会话的情况下执行请求时,它应生成一个新的请求,例如与id=abc。现在,当使用相同的会话cookie id=abc发送请求时,Tomcat B会创建一个具有相同ID(但数据不同于A的会话)的新会话。

我查看了Tomcat的SessionIdGenerator,但是B中的会话ID取决于请求,并且生成器看起来像单例。 我感觉这需要在Tomcat B中使用自定义会话管理器,因为会话ID无法修改。

另一种方法是维护两个单独的会话,一个用于浏览器,一个用于从A到B的连接(其中A在浏览器的会话属性中存储B返回的会话ID)。但是,这将需要附加状态,因此不是我偏爱的解决方案。

如果可以为最新的Tomcat 7建议一个可行的解决方案,则表示敬意。

0 个答案:

没有答案