6

是否可以覆盖 Tomcat 的嵌入式 JSESSIONID 生成器,以便能够根据用户的登录创建此 cookie 的自定义值?

为什么我需要这个:我有一个带有“粘性会话”的负载均衡器,配置为将具有相同 JSESSIONID 的请求路由到同一台服务器,并且我想防止出现同一用户可以在不同服务器上启动两个不同会话的情况。

PS:这一切都是关于 Amazon EC2

4

2 回答 2

4

有一个更好的方法可以做到这一点:参见 tomcat manual on session replication in cluster

于 2010-05-14T12:03:37.880 回答
2

您可以通过定义自己的自定义会话管理器来做到这一点,

http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html

但是,它可能不适用于您的用例。在用户登录之前您不知道用户名,但需要为登录创建会话。

我认为将会话推送到后端是最好的方法。您可以使用与 Tomcat 一起分发的 JDBCStore 会话管理器。您还可以找到 memecached 的实现。

如果多台服务器的目的是为了实现冗余,您也可以使用集群,但如果您的目标是扩展负载,这对您没有帮助。

于 2010-05-14T12:25:14.577 回答