2013-09-05 5 views
0

У меня есть приложение, которое работает на tomcat за apache 2.4.6, настроенное с помощью mod_session_dbd. Мне нужна информация о сеансе, которая сохраняется в базе данных. Я вижу, что apache сохраняет информацию о сеансе как файл cookie в браузере. Но, когда я запускаю HTTP-запрос, request.getSession(). GetId() возвращает другой идентификатор сеанса. Его возвращение jsessionid, созданное tomcat. Мне нужно «сеанс cookie» на сервере, чтобы выполнить некоторые вычисления. request.getCookies() тоже не помогает.
Любые указатели?
Как получить идентификатор сеанса, который сохраняется в apache в моих запросах?Как получить apache httpd session id

Скриншот

+0

Это в печенье. Трудно поверить, что request.getCookies() не помогает. – EJP

+0

Cookies имеют идентификатор jsession, созданный tomcat .. Но значение в имени файла cookie 'session' является тем, которое сохраняется в db .. –

+0

На вашем скриншоте показаны четыре куки, из которых 'JSESSIONID' является первым. Возвращает ли 'request.getCookies()' все четыре этих файла cookie? Вы, случайно, просто захватили первый элемент массива и использовали его и забыли о других трех файлах cookie? – Ladadadada

ответ

0

От апача documentation:

В обратном прокси ситуации, когда сервер работает Apache в качестве сервера интерфейса для сервера бэкенд происхождения, раскрывающие содержание сеанса ID куки бэкэнд может быть потенциальным нарушением конфиденциальности. Когда установлено значение «включено», cookie идентификатора сеанса будет удален из входящих HTTP-заголовков.

Итак, я бы отключил его, чтобы получить идентификатор сеанса как часть файла cookie.

SessionDBDCookieRemove Off