Что такое пустой путь сеанса в Tomcat? - PullRequest
6 голосов
/ 02 декабря 2010

Я прочитал документацию Apache Tomcat за день до этого, и я так растерялся из-за emptySessionPath. Насколько мне известно, если установлено значение true, emptySessionPath хранится в корневой папке веб-приложения. Пожалуйста, дайте правильное определение термина emptySessionPath, и что произойдет, если ему присвоено значение true и false?

Пожалуйста, ведите меня. Спасибо заранее.

Ответы [ 4 ]

7 голосов
/ 02 декабря 2010

Поле emptySessionPath просто указывает, следует ли сохранять все файлы cookie в корневом пути URL / (если emptySessionPath=true) или нет (в противном случае).

Используется соединителем Apache. Подробнее здесь (Это для AJP Connector, который является частью объекта Connnector).

Что это в основном означает:

Если emptySessionPath включен в кот, JSESSIONID печенье записан в корень "/" путь. это означает, что на каком бы веб-приложении вы ни находились будет использовать тот же файл cookie. Каждое веб-приложение перепишет значение куки в удерживайте идентификатор сеанса этого веб-приложения и они все разные.

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

Если emptySessionPath не установлен, то есть несколько файлов cookie в браузере, по одному на каждое веб-приложение root), поэтому разных веб-приложений нет переписывать куки друг друга как выше.

JSESSIONID - это ID-сессия для вашего веб-приложения. Смотрите полное объяснение здесь .

Обновление: эта информация о использовании несколько устарела - см. здесь для получения более свежей информации о том, как установить путь сеанса также для недавнего кота .

5 голосов
/ 02 декабря 2010

Если параметру emptySessionPath присвоено значение true, он удалит путь к контексту из файла cookie JSESSIONID. Он установит путь к файлу cookie в значение /. Этот атрибут можно использовать для механизма проверки подлинности между приложениями.

4 голосов
/ 02 декабря 2010

Сеансы, как вы, вероятно, знаете, часто поддерживаются cookie.Файл cookie имеет два значения, которые определяют, должны ли они возвращаться браузером для определенного запроса: cookieDomain и cookiePath . cookiePath должен совпадать с запросом.

Запрос сделан для

 /some/request/for/this.html

Файл cookie будет возвращен с путем cookie:

 / 
 /some
 /some/request

Но не для пути к cookie:

 /other

По спецификации сеанс не разделяется между различными веб-приложениями, поэтому, если у вас есть веб-приложение foo.war, развернутое в /foo, путь к cookie сеансапо умолчанию установлено значение /foo.

Кажется, Connector.emptySessionPath является защищенной переменной в соединителе.Я не читал код - но я думаю, что он как-то связан с сеансами единого входа или совместного использования Tomcat, когда вы входите в один контекст и аутентифицируетесь во всех - в этом случае путь cookie должен быть / длясеансовые куки.

0 голосов
/ 27 ноября 2012

На всякий случай, для web_app версии 3.0, конфигурация cookie-файлов стандартизирована, поэтому эквивалент для emptySessionPath AJP в webapp 3.0:

/ правда

...