2015-12-11 2 views
0

У меня есть веб-приложение, для которого мне нужны сеансы, основанные на времени, так что обновление страницы или перезагрузка на другой вкладке будет одинаковой. Так, в web.xml у меня есть:Tomcat session cookie не отправляется для запроса корневого контекста

<servlet-mapping> 
    <servlet-name>any</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

<session-config> 
    <session-timeout>30</session-timeout> 
    <cookie-config> 
     <name>sid</name> 
     <max-age>1800</max-age> 
    </cookie-config> 
</session-config> 

Куки устанавливается с надлежащим выдохе, его путь/приложение /, в соответствии с моим именем контекста. Теперь, если я делаю запросы на такие URL-адреса, как/app/или/app/main, cookie передается. Однако корневой путь/приложение не отправляет cookie. Даже если добавить ...

<path>/app</path> 

... в вышеуказанном печенья конфигурации, путь куки в браузере это же/приложение /. Есть ли обходной путь для этого странного поведения?

Apache Tomcat/8.0.28

ответ

1

behvaiour не странно, именно там по соображениям безопасности.

Поведение также настраивается, но убедитесь, что вы понимаете последствия для безопасности изменения по умолчанию.

Конфигурация осуществляется через атрибут sessionCookiePathUsesTrailingSlash элемента Context в server.xml. Подробную информацию см. На странице Context documentation.

+0

Спасибо. Итак, если в том же домене у меня нет другого контекста с именем, которое начинается с текущего настроенного имени контекста, то я могу безопасно использовать этот атрибут и опустить конечную косую черту из URL-адресов? –

+0

Это правильно. –

Смежные вопросы