Session weblogic上的Liferay不';t使portlet会话无效
我在WebLogic server 10.3.6.0上使用Liferay 6.2 GA4 portal,发现了一个恼人的问题Session weblogic上的Liferay不';t使portlet会话无效,session,liferay,weblogic,Session,Liferay,Weblogic,我在WebLogic server 10.3.6.0上使用Liferay 6.2 GA4 portal,发现了一个恼人的问题 我以用户身份登录 显示将数据存储到portlet会话的portlet 我注销 我以UserB身份登录 显示将数据存储到portlet会话的同一portlet Portlet显示UserA而不是UserB的数据 我通过ext插件向com.liferay.portal.kernel.servlet.PortletSessionListenerManager和com.lifer
com.liferay.portal.kernel.servlet.PortletSessionListenerManager
和com.liferay.portal.kernel.servlet.PortletSessionTracker
添加了一些调试日志消息,并找到了该会话(sessionId)传递给PortletSessionTracker.add方法与传递给invalidate方法的方法不同。请参阅下面的日志消息:
2016-01-28 10:38:34,191 [PortletSessionTracker:40] Adding session with id=4s6HmE3LdwWuUdOilk7-ytJLqJh1LnCiTKzoeH9YVSBM2USJuxU9
2016-01-28 10:40:38,875 [PortletSessionListenerManager:187] Destroying session with id=S4qHmPDaSTLkwkmEo6gDLt4W0U-siGlU_GNa1LJelXTtQvSaRyEd
2016-01-28 10:40:38,875 [PortletSessionTracker:73] Removing session with id=S4qHmPDaSTLkwkmEo6gDLt4W0U-siGlU_GNa1LJelXTtQvSaRyEd
有人知道可能是什么问题吗?谢谢你的任何想法或帮助。这个问题有一个棘手的原因。我们的客户希望会话id cookie具有不同的名称,而不是默认的jsessionid。我在liferay portal war上设置了修改后的jsessionid,但在主题和portlet应用程序等其他war上没有设置。因此,这些WAR使用默认的jsessionid,而portal使用修改后的jsessionid。默认值由add方法使用,修改后的值由invalidate方法使用。
所以解决方案是在portlet和主题战中修改会话id cookie。已经有几年没有使用LR了。它保留了一个会话,(通过cookie?)保留在客户端上。LR会话的设计有些有状态。会话管道最多可重复使用半小时(服务器中有超时设置)。这个组合可能就是您正在运行的。通过菜单交换用户的LR管理员没有这个问题。在LR和Weblogic中查找“保持会话”超时。
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd"
>
<jsp-descriptor>
<keepgenerated>true</keepgenerated>
<page-check-seconds>60</page-check-seconds>
</jsp-descriptor>
<session-descriptor>
<debug-enabled>true</debug-enabled>
<persistent-store-type>replicated_if_clustered</persistent-store-type>
<cookie-secure>true</cookie-secure>
</session-descriptor>
<container-descriptor>
<filter-dispatched-requests-enabled>false</filter-dispatched-requests-enabled>
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>com.ctc.wstx.*</package-name>
<package-name>org.antlr.*</package-name>
<package-name>org.apache.commons.lang.*</package-name>
<package-name>org.mozilla.*</package-name>
<package-name>org.xmlpull.*</package-name>
</prefer-application-packages>
<optimistic-serialization>true</optimistic-serialization>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
<context-root>/</context-root>
<wl-dispatch-policy>ejbtp_liferay</wl-dispatch-policy>
</weblogic-web-app>