Wildfly (Undertown) иногда включает в себя jsessionid в URL - PullRequest
0 голосов
/ 31 декабря 2018

Мои окружения:

  • Wildfly 14
  • Браузер Firefox (Cookie / JavaScript включен)
  • Простое веб-приложение, использующее response.encodeURLдля кодирования URL ссылки
  • web.xml: без настроек отслеживания сеанса

Иногда в URL ссылки входит jsessionid См. ниже:

<a href="/VocabDB-1.0/MyVocab/Index;jsessionid=UGGha-TULRrZNFqQdtqdVlpBQQEDE-WwRrj4l78P.gpcit2ua7371tv9">Test Link</a>

Большую часть времени ссылка

<a href="/VocabDB-1.0/MyVocab/Index">Test Link</a>

Есть идеи?Спасибо!

1 Ответ

0 голосов
/ 31 декабря 2018

Это совершенно нормально: при первом запросе сервер не знает, принимает ли клиент файлы cookie или нет, поэтому он отправляет файл cookie и , а также сохраняет идентификатор сеанса в URL-адресе.

Во втором запросе, если он получает идентификатор сеанса из файла cookie, он знает, что добавление его к URL-адресу больше не требуется для этого сеанса, и, таким образом, прекращает это делать.

ЭтоКстати, что объясняет javadoc для encodeURL :

Кодирует указанный URL-адрес, включая идентификатор сеанса, или, если кодирование не требуется, возвращает URL-адрес без изменений.Реализация этого метода включает логику, чтобы определить, нужно ли кодировать идентификатор сеанса в URL.Например, если браузер поддерживает файлы cookie или отслеживание сеанса отключено, кодировка URL не требуется.

Для надежного отслеживания сеанса все URL-адреса, излучаемые сервлетом, должны выполняться с помощью этого метода.В противном случае перезапись URL не может использоваться с браузерами, которые не поддерживают файлы cookie.

...