2014-12-22 1 views
1

Jsessionid для управления сеансом может быть настроен с режимом отслеживания в режиме cookie или в режиме URL.Настройка Wildfly/Undertow для обмена jsessionid как HTTP Header?

Пример JSESSIONID Режим печенья:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: es-ES,es;q=0.8,en;q=0.6 
Cache-Control: max-age=0 
Connection: keep-alive 
Cookie: jsessionid=WuscHxD4eZCkPXDPubheV9MC.mbp-de-sadsad 
Host: localhost:8080 
User-Agent: 
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 

Пример JSESSIONID Режим URL:

http://www.example.com/home;jsessionid=BB69F0DEF79877629096AFEFFB53D478

Есть ли способ настроить или расширить поведение wildfly (8.0.1 для обмена JSESSIONID с помощью HTTP Header?

Пример того, что мне нужно:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: es-ES,es;q=0.8,en;q=0.6 
Cache-Control: max-age=0 
Connection: keep-alive 
jsessionid: WuscHxD4eZCkPXDPubheV9MC.mbp-de-kdslsd 
Host: localhost:8080 
User-Agent: 
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 

Возможно ли настроить Wildfly (8.1.0/8.2.0)/Undertow для обмена jsessionid как HTTP-заголовок?

Thanks

ответ

0

Я уверен, что это невозможно с настройкой. Вы могли бы сделать это с помощью кода. Но доступ к sessionId-суффиксу невозможен переносимым образом, поскольку он не является частью спецификации сервлета. Таким образом, вместо этого я использовал функции перезаписи запроса/ответа моего балансира нагрузки, когда столкнулся с одной и той же проблемой.

Суффикс sessionId является частью «.mbp-de-kdslsd». Wildfly uses the jboss.node.name for this.

Если вы хотите сделать это с кодом, вы должны hook the sending of a response и добавить заголовок there. SessionId доступен с @WebListener с использованием HttpSessionListener. Я не знаю, как получить доступ к свойству jboss.node.name, но я уверен, что у quickstart-samples будет код для вас.