我正在构建几个 Portlet 以部署在 WebSphere Portal Server 上,每个 Portlet 都部署在它自己的 WAR 中。现在,我需要跟踪用户在登录门户时访问的每个 Portlet。我试图使用以下方法从 Portlet 获取会话标识符:
HttpServletRequest servletRequest = PortletUtils.getHttpServletRequest(request);
String sessionId = servletRequest.getSession().getId();
但是在我登录后,我sessionId
从我访问的每个 Portlet/WAR 中获得了不同的值。我想这是有道理的,因为每个 WAR 都有一个会话范围。
那么,我如何获得门户会话(而不是 Portlet 会话)的标识符?我看到JSESSIONID
每个 HTTP 请求中的 cookie 都是相同的,但我不确定它是否通过 Servlet 或 Portlet API 公开。