我们的产品客户正试图直接登录到我们的安全页面之一。
login url="https://" + anIp + ":5443/om";
GetMethod authget = new GetMethod(url);
..
Header cookie = authget.getResponseHeader("Set-Cookie");
登录页面的 cookie(J-session id) 保存在 cookie 中,这再次用于第二次访问登录页面后的第二个页面的一些信息。
第二页url=https://"+ anIp + ":5443/om/service.do?action=listservice
注意:两个页面都是安全的(https)。 问题是:在 tomcat5.5 上,我们观察到两个 cookie 是相同的。 但是在 tomcat 6.0 上,当我们尝试使用第一个 cookie 访问第二个页面时,它不起作用。我们观察到,即使导航是从 https 页面到另一个 https(仅)页面,cookie 在 6.0 上也发生了变化。 我无法弄清楚 6.0 有什么问题。 从 5.5 到 6.0 tomcat.cookie 管理是否有任何变化? 如果有人知道这件事,请告诉我。
最佳答案
最新版本的 Tomcat 会在您跨越身份验证边界时更改 session ID(例如,您输入用户名和密码)。这是为了防止 session 固定攻击。
如果您有一个跟踪 session ID 的客户端,那么您需要持续跟踪 session ID,为每个包含 JSESSIONID cookie 的响应更新您的 session ID。
关于security - 当从一个 https 页面导航到 tomcat 6.0.24 上的另一个 https 页面时,J-session id 发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11685827/