我认为您可以使用PortletSession而不是HttpSession这样:
PortletSession portletSession = renderRequest.getPortletSession();
portletSession.setAttribute("password", "authenticated", PortletSession.APPLICATION_SCOPE);
...以及获取属性:
String pwd = (String) portletSession.getAttribute("password", PortletSession.APPLICATION_SCOPE);
由于 liferay 的 OOTB portlet<private-session-attributes>false</private-session-attributes>在其中定义liferay-portlet.xml,上述代码session与整个门户共享。
liferay-portlet.xmlDTD 中关于使用的一个小注释<private-session-attributes>:
private-session-attributes如果 portlet 不与门户共享会话属性,则将该值设置为 true。默认值是true。portal.properties 中的属性session.shared.attributes指定共享哪些会话属性,即使 private-session-attributes 值为 true。
让我知道这是否有帮助。