2014-12-16 8 views
3

Ранее мы использовали JBoss 7.1.2 и использовали поведение, которое JSESSIONID помещает в URL как резерв, если файлы cookie не принимаются или если cookie JSESSIONID отсутствует в запросах.Конфигурирование WildFly/Undertow для размещения JSESSIONID по URL-адресу, если файлы cookie не принимаются

После миграции на WildFly 8.2.0/Undertow 1.1.0 этот URL-адрес переписывать не происходит.

Можно ли настроить WildFly/Undertow для включения JSESSIONID в URL-адрес в качестве резервной копии? Мы знаем о возможности поставить сессионный-конфигурации в web.xml, например .:

<session-config> 
    <tracking-mode>URL</tracking-mode> 
</session-config> 

Но мы хотим только JSESSIONID на URL-адресов в качестве решения резервного.

ответ

6

Чтобы использовать куки сессионных отслеживания если таковые имеются и URL на основе сеанса отслеживания в качестве запасного варианта, вы должны настроить ваш Дескриптор web.xml так:

<web-app ...> 
    <session-config> 
    <tracking-mode>COOKIE</tracking-mode> 
    <tracking-mode>URL</tracking-mode> 
    </session-config> 
</web-app> 

Обратите внимание, что вам нужно, по крайней мере сервлет 3,0 спецификация!

К сожалению, в Wildfly/Undertow отсутствует bug (UNDERTOW-396), что предотвращает использование резервной копии. Эта ошибка была отмечена как исправленная для Undertow 1.2.0-Beta10, но Wildfly 8.1.0.Final и 8.2.Final используют как старые версии. Поэтому в настоящее время вам, вероятно, потребуется обновить Undertow в вашей установке Wildfly, чтобы получить исправление.

Вот еще один полезный blog-post по этой теме.

Обновление: Wildfly 9.0.2.Final использует Undertow 1.2.9, поэтому это должно работать снова (еще не проверено).

+0

Помните, что при установке сеанса в URL-адресе возникают некоторые проблемы с безопасностью. Посмотрите на топ-10 OWASP для рекомендаций. Посмотрите на тему A2 и фиксация сеанса. – mvermand

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

  • Нет связанных вопросов^_^