2012-10-14 64 views
0

就在最近,我從web 2.4遷移到web 3.0。此遷移的一個要求是,我需要在我的應用程序中引入「httponly」cookie。所以,我增加了以下sessionconfig元素,我的web.xmlhttponly cookie web 3.0導致意外超時

<session-config> 
<session-timeout>240</session-timeout> 
<cookie-config> 
     <http-only>true</http-only> 
     <secure>true</secure> 
</cookie-config> 
<tracking-mode>COOKIE</tracking-mode> 
</session-config> 

添加上述sessionconfig到我的web.xml文件中引起異常超時。我可以登錄到我的應用程序,但在此之後,當我點擊其他任何內容時,我都會收到一條消息,指出「會話已過期」。我做錯了什麼?任何幫助將不勝感激

回答

1

<secure>true</secure>意味着您的瀏覽器將cookies發回到服務器只能通過HTTPS而不是通過HTTP,所以如果您通過HTTP訪問該網站,然後登錄後,您將不會發送cookie。

+0

非常感謝desislav。我應該擺脫 true 因爲我的網站只能使用http而不是https訪問? – user1066568

+0

是,將其設置爲false或將其從配置中刪除 –

0

我同意Desislav Kamenov。我通過HTTP遇到了這個問題,當我刪除了它的工作。因此,對於HTTP和HTTPS正確的配置如下: -

HTTP: -

<session-config> 
<cookie-config> 
    <http-only>true</http-only> 
</cookie-config> 
</session-config> 

HTTPS:

<session-config> 
<cookie-config> 
    <http-only>true</http-only> 
    <secure>true</secure> 
</cookie-config>