weblogic jsessionid

Eli*_*jah 9 weblogic sessionid jsessionid

我在本地运行Weblogic 10.3,并对它生成的sessionId有疑问.当我打印session.getId()时,我看到类似于此的东西:

BBp9TAACMTglQ2TDFAKR4tpyXg73LZDQJ2PtT9x8htG1tWY122aa!869187422!1308677666322

这些惊叹号及其后面是什么,特别是第二对:!1308677666322?看起来有时服务器会附加它,有时却不会.我相信如果我使用相同的浏览器第二次登录我的应用程序,weblogic会附加它.这个cookie是否以某种方式相关?

Jos*_*seK 22

从我自己的应用程序中查看一些随机生成的Weblogic JSessionID

BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj!-314662473
Run Code Online (Sandbox Code Playgroud)

BrYiFED29itaC4EBpWYM8RKVQQauHkvnTsA2OAKUPZXVc9oUD5fB!-784323496.
Run Code Online (Sandbox Code Playgroud)

现在,如果您在第一个之后注意到会话ID的一部分!314662473784323496.

此数字是Weblogic为正在运行的JVM(即正在运行的Weblogic服务器)提供的唯一标识符.

如果应用程序中有多个服务器,则Weblogic知道如何使用此9位JVM编号将会话路由回正确的服务器,该编号是会话ID的一部分.

每次重新启动weblogic服务器时,只要该weblogic服务器正在运行,它就会生成一个新的JVM id并使用它.因此,对该服务器的任何命中都将在会话ID的末尾具有相同的ID.

会话ID格式为:

JSESSIONID = SESSION_ID!PRIMARY_JVMID_HASH!SECONDARY_JVM_HASH!CREATION_TIME

因此,如果主服务器不可用,它将尝试跳转到辅助服务器,如果已启用会话复制,则可以恢复会话数据.如果您只在本地运行单个服务器,那么格式就是这样

JSESSIONID = SESSION_ID!PRIMARY_JVMID_HASH!CREATION_TIME

有些时候它没有出现,我已经看到它通常是一个浏览器依赖于sessionid是否显示在地址栏中