我正在为应用程序创建共享会话实现。在这样做时,我想首先了解tomcat(带有嵌入式tomcat的spring boot)为经过身份验证的用户创建Sessions的方式。
我发现org.apache.catalina.util.StandardSessionIdGenerator#generateSessionId
方法创建了sessionid,它使用安全随机数生成器和jvmRoute
(我从未在tomcat)
中设置任何位置。
为了讨论这个问题,如果我们考虑jvmRoute=""
,那么这意味着如果我在lb后面运行两个tomcat实例会有sessionid的冲突,但是默认会话亲和性被启用我们将不会有任何问题。
但是一旦我们删除了会话亲和关系,我们就会面临两个用户可以拥有相同会话ID的问题。
有没有人面对这个问题而且已经解决了?