我在Tomcat上有一个带有表单身份验证的简单webapp,并注意到只要用户只是 到登录页面就会设置“登录前”JSESSIONID任何登录尝试都会发生。
这是Tomcat中的默认行为吗?为什么Tomcat仅为加载登录页面生成JSESSIONID?在实际登录后,它不应该生成任何会话ID 仅吗? (不是因为有人加载登录页面!)
注意:我应该提到我的整个 webapp(登录页面和所有)是通过https托管的;没有任何部分通过http公开。我也没有使用 JSP。登录后,Tomcat会生成第二个 JSESSIONID,与第一个不同。这是用户在其余会话中使用的那个。
但是为什么首先设置了“登录前”JSESSIONID ?
答案 0 :(得分:1)
如果您使用Tomcat表单身份验证,则必须将初始请求存储在某处以执行auth的无状态重定向。之后,它将重新评估请求。 SavedRequest
保存在session中。您应该禁用changeSessionIdOnAuthentication
标记。