2016-04-14 93 views
0

我試圖更新JSESSIONID值如下,但它爲每個請求創建一個新的JSESSIONID cookie。更新JSESSIONID cookie值

Cookie[] cookies = httpRequest.getCookies(); 
    Cookie jsessionCookie = null; 
    Cookie hazelcastCookie = null; 
    if (cookies != null) for (Cookie cookie : cookies) { 
     if (cookie.getName().equals(JSESSION_COOKIE_NAME)) 
      jsessionCookie = cookie; 
     else if (cookie.getName().equals(HAZELCAST_COOKIE_NAME)) hazelcastCookie = cookie; 
    } 
    if (jsessionCookie != null && hazelcastCookie != null 
      && jsessionCookie.getValue() != hazelcastCookie.getValue()) { 
     jsessionCookie.setValue(hazelcastCookie.getValue()); 
     httpResponse.addCookie(jsessionCookie); 
     LOGGER.log(Level.DEBUG, 
       "Updated jsessionCookie value with hazelcastCookie --> " + jsessionCookie.getValue()); 
    } 

什麼變化我應該只是更新JSESSIONID價值,而不是創建爲每個請求一個新的?

UPDATE

請求頭

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US,en;q=0.8 
Connection:keep-alive 
Cookie:WebDAV.activeX=false; JSESSIONID=HZ9542C5A55A7142A28935DFF96746230F; hazelcast.sessionId=HZ9542C5A55A7142A28935DFF96746230F; JSESSIONID=HZ9542C5A55A7142A28935DFF96746230F; sessionIdForCognos=HZ9542C5A55A7142A28935DFF96746230F; _sd3_session_id=5436c0eebe806f38ca8d1e2867338e00 

響應頭

Cache-Control:no-cache 
Connection:Keep-Alive 
Content-Encoding:gzip 
Content-Language:en-US 
Content-Length:6538 
Content-Type:text/html;charset=utf-8 
Date:Thu, 14 Apr 2016 22:20:36 GMT 
Expires:Wed, 31 Dec 1969 23:59:59 GMT 
Keep-Alive:timeout=70, max=57 
Pragma:no-cache 
Server:None 
Set-Cookie:JSESSIONID=508E10266957BFF95874CEBFECF5FBAF.qa-trunk-n2; Path=/Passport; Secure; HttpOnly 
Set-Cookie:hazelcast.sessionId=HZ9542C5A55A7142A28935DFF96746230F; Path=/Passport 
Set-Cookie:JSESSIONID=HZ9542C5A55A7142A28935DFF96746230F 

回答

0

如果你想設置一個現有的cookie的值,則以下字段cookie必須全部相同:

  1. 路徑
  2. 安全
  3. 僅HTTP
+0

是的,我不碰任何這些我剛開了'JSESSIONID'和更新值 – RanPaul

+0

你能告訴我們在瀏覽器中cookies的樣子嗎? – Samuel