Session Websphere 8.5会话cookie问题

Session Websphere 8.5会话cookie问题,session,session-cookies,servlet-filters,websphere-8,jsessionid,Session,Session Cookies,Servlet Filters,Websphere 8,Jsessionid,为了解决cookies相关的漏洞,我在我的一个过滤器中编写了请求和响应包装器。 在请求包装器中,我在getSession方法中使用以下代码覆盖cookie(已覆盖) 在响应筛选器中,我已重写addCookie和addHeader方法以执行相同的操作 上面的代码在tomcat和jboss上运行良好,但在WebSphere8.5上出现了问题 对于WebSphere8.5,它在getSession方法getHttpServletRequest().getSession(false) 当我检查来自浏览器

为了解决cookies相关的漏洞,我在我的一个过滤器中编写了请求和响应包装器。 在请求包装器中,我在getSession方法中使用以下代码覆盖cookie(已覆盖)

在响应筛选器中,我已重写addCookie和addHeader方法以执行相同的操作

上面的代码在tomcat和jboss上运行良好,但在WebSphere8.5上出现了问题

对于WebSphere8.5,它在getSession方法
getHttpServletRequest().getSession(false)

当我检查来自浏览器开发人员工具的网络流量时,我观察到在响应中添加了多个cookie(一个是我们添加的,另一个是服务器添加的),为了避免这种情况,我在websphere会话管理中设置禁用cookie。这解决了多Cookie问题,但空会话问题仍然存在

如何解决这个问题


谢谢

您的代码中不应该有一个显式的“false”参数,您应该传递包装器传递的内容。您可能会中断通过true的呼叫者,因此无法正确建立新会话

您还可能会破坏会话关联,因为您没有复制会话ID后面的克隆ID


如果您只想更改cookie路径,为什么不在配置中设置cookie路径?

您试图解决哪些漏洞?您不应该手动篡改由服务器容器创建的会话cookie,因为它可能包含其他SSO/关联信息,并且整个cookie id不是必需的,只是使用
getId()
方法接收的会话id。如果您有任何与安全相关的疑问,请删除您的筛选器并创建PMR。
HttpSession session = getHttpServletRequest().getSession(false);
String value="JSESSIONID=" + session.getId() +"; Path="+getHttpServletRequest().getContextPath()+"/";
        ((HttpServletResponse)response).setHeader("Set-Cookie",value);