如何根据用户数据的某些哈希生成自定义 JSESSIONID 以复制会话

发布于 2024-09-01 16:51:18 字数 201 浏览 6 评论 0原文

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

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

PS:这一切都是关于Amazon EC2

Is it possible to override Tomcat's embedded generator of JSESSIONID, to be able to create custom values of this cookie, based on user's login?

Why do I need this: I have a load balancer with "sticky sessions", configured to route requests with the same JSESSIONID to the same server, and I want to prevent situation, when same user can start two different sessions on different servers.

P.S: all this is about Amazon EC2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雨后咖啡店 2024-09-08 16:51:18

有一个更好的方法可以做到这一点: 请参阅有关会话复制的 tomcat 手册在集群中

放低过去 2024-09-08 16:51:18

您可以通过定义自己的自定义会话管理器来实现此目的,

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

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

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

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

You can do so by defining your own customized session manager,

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

However, it probably doesn't work for your use-case. You don't know username before user logs in but the session needs to be created for the login.

I think pushing session to the backend is the best approach. You can use the JDBCStore session manager distributed with Tomcat. You can also find implementation for memecached.

If the purpose of multiple servers is for redundancy, you can also use clustering but that doesn't help you if your goal is to scale for load.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文