我們將應用程序從JBoss 5.1.0 GA遷移到WildFly 8.2.0。我觀察到「-Djboss.node.name」(node1)的值附加到JSESSIONID cookie,這在我的應用程序中導致嚴重問題。如何避免將-Djboss.node.name值附加到JSESSIONID
在我的應用程序中,我們有一個SessionListener類,我們將sessionids存儲到一個靜態映射中,並在執行任何操作時驗證映射中的會話id並加載適當的數據。
請找到下面的代碼。
In web.xml
<listener>
<listener-class>com.project.session.ProjectSessionListener</listener-class>
</listener>
和ProjectSessionListener代碼是
public class ProjectSessionListener extends SeamListener {
private static final Map<String, HttpSession> sessionMap = new HashMap<String, HttpSession>();
...............................
@Override
public void sessionCreated(final HttpSessionEvent event) {
super.sessionCreated(event);
final HttpSession session = event.getSession();
final String sessionId = session.getId();
sessionMap.put(sessionId, session);
}
}
雖然添加的sessionid到sessionMap沒有.node1附加到會話(ABCD1234),因此被的sessionid在地圖保存沒有.node1 ,但登錄頁面已成功加載。
當我們點擊登錄時,我發現.node1被追加到JSESSIONID9(ABCD1234.node1),同時驗證我們正在嘗試使用沒有.node1的會話日期,這顯然返回null並導致異常。
I tried
1) removing the -Djboss.node.name from WildFly confuguration, in this case it is appending my pc name(ABCD1234.sreenath-WIN-7).
2) Removing <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/> from standalone .xml
有什麼辦法可以避免在WildFly上追加額外字符到JSESSIONID?