Cookie против приоритета токена URL-адреса jsessionid

#java #session #tomcat #cookies #jsessionid

#java #сессия #tomcat #файлы cookie #jsessionid

Вопрос:

как обстоит дело с Set-Cookie: VS jsessionid url token приоритетом?

Apache Tomcat, похоже, просто игнорирует токен, если установлен cookie. Разве это не немного неудобное поведение? Или это так из соображений безопасности?

это URL-адрес запроса в сервлете

 ....someParam=addFile;jsessionid=7A6ECCF009D4855821BCB45E0B744A7B'
  

и идентификатор результирующего сеанса соответствует параметру заголовка запроса cookie…

Это означает, что это портит обработку запроса. Например, Spring-mvc преобразует someParam значение в addFile;jsessionid=7A6ECCF009D4855821BCB45E0B744A7B' , и происходит сбой с исключением…

Ответ №1:

Согласно спецификации Servlet 2.4, перезапись URL-адреса является наименьшим значением для отслеживания сеанса, поэтому я не удивлен, что jsessionid в URL игнорируется для клиентов, которые принимают файлы cookie. Прочитайте раздел 7.1 для получения соответствующих сведений (т. Е. отслеживания сеанса).

Что касается вашего обновленного вопроса (связанного с Spring MVC), существует множество статей / методик, в которых упоминается, как избавиться от чрезмерного количества ;jsessionid в вашем URL-адресе, удалив их с помощью фильтра или с помощью mod_rewrite . Выполните поиск в Google по «jsessionid в URL» и прочитайте следующие ссылки.

Комментарии:

1. Проблема здесь в том, что Tomcat должен удалить его, если он принимает cookie, потому что в противном случае он остается в URL-адресе

2. В спецификации нет ничего, что указывало бы, что jsessionid в URL-адресе должно быть удалено, если клиент принимает файлы cookie. Я не уверен, почему URL-адрес вашего клиента содержит jsessionid , если клиент принимает файлы cookie? Вы вводите jsessionid вручную? Кроме того, смотрите Мой обновленный ответ.

3. Причина в проклятой технологии Flash bugs.adobe.com/jira/browse/FP-1044 … ошибка 3-летней давности и 77 голосов, и adobe просто наблюдает, как люди безнадежно борются с ней

4. @Санджай Т. Шарма, и что бы я сделал с jsessionid? Мне нужен tomcat для загрузки соответствующего объекта сеанса. Мне не нужен SessionID в моем контроллере, что бы я сделал с it…it бесполезно

5. Например, движок PHP прослушивает cookie, токен URL-адреса PHPSESSIONID !и! Параметр запроса POST phpsessionID. И он загружает соответствующий объект сеанса… Но контейнеры сервлетов этого не делают, они прослушивают только cookie и токен URL jsessionid… не параметры http-запроса