httponly cookie web 3.0 вызывает неожиданное время ожидания

Совсем недавно я перешел с веб 2.4 на веб 3.0. Одним из требований этой миграции было то, что мне нужно ввести в мое приложение файл cookie «только http». Итак, я добавил следующий элемент sessionconfig в свой файл web.xml.

<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>

Добавление вышеуказанной конфигурации сеанса в мой файл web.xml вызывает непредвиденный тайм-аут. Я могу войти в свое приложение, но после этого, когда я нажимаю что-либо еще, меня выкидывает с сообщением «Сессия истекла». Я делаю что-то не так? Любая помощь приветствуется


person user1066568    schedule 14.10.2012    source источник


Ответы (2)


<secure>true</secure> означает, что ваш браузер будет отправлять файлы cookie обратно на сервер только через HTTPS, а не через HTTP, поэтому, если вы заходите на сайт через HTTP, то после входа в систему вы не будете отправлять файлы cookie.

person Desislav Kamenov    schedule 14.10.2012
comment
Десислав большое спасибо. Должен ли я избавиться от ‹secure›true‹secure›, поскольку доступ к моему сайту осуществляется только по http, а не по https? - person user1066568; 14.10.2012

Я согласен с Десиславом Каменовым. Я столкнулся с этой проблемой через HTTP, и когда я удалил true, это сработало. Таким образом, правильная конфигурация для 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>

person Abhishek Pandey    schedule 01.07.2015