GlassFish v3 JSESSIONID Несколько поддоменов и TLD - PullRequest
1 голос
/ 11 июля 2010

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

www.example.com
www.example.co.uk
www.example.com.ar
fred123.example.co.uk  <== Thousands of this form
fred123.p.example.us   <== Thousands of this form

Хотя мы можем понять, что разные доменные домены приводят к новым сеансам, с последними двумя примерами выше начинает появляться проблема, которая также приводит к новым экземплярам сеансов. Например, если пользователь:

  1. Переходит на: www.example.co.uk, создается новый сеанс, а затем ...
  2. Кликает по ссылке: fred123.example.co.uk, создается новый сеанс, а затем ...
  3. Кликает по ссылке: sam99.example.co.uk создается новый сеанс ...

3 клика == >> 3 сеанса !!!!

Проблема, по-видимому, связана с тем, что GlassFish v3 автоматически делает домен JSESSIONID полным доменным именем запроса хоста.

Требуется, чтобы часть имени хоста была удалена из значения домена, как минимум, для значений доменов, таких как:

.example.com
.example.co.uk
.example.com.ar
.example.co.uk  <== Thousands of this form
.p.example.us   <== Thousands of this form

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

Проблема, связанная с сеансом JSP

Ergo решение статической настройки sun-web.xml ИЛИ с использованием решения Servlet 3.0, похоже, не помогает. Кроме того, создание оболочки ответа фильтра также не работает, поскольку файл cookie JSESSIONID назначается на нижних уровнях сервера приложений и не подвергается веб-приложению для перехвата.

Единственные два других варианта, которые у меня есть:

a) Исправьте код GlassFish v3, который устанавливает значение домена cookie JSESSIONID в FQDN, чтобы произошло некоторое удаление ИЛИ

b) Что-то сделать на уровне обратного прокси-сервера Sun Web Server 7.0, чтобы мы переписали значение домена cookie JSESSIONID, возвращаемое в заголовке set-cookie, однако я не смог найти примеров, как это сделать

Может кто-нибудь помочь решить эту проблему? Любые подсказки / помощь будут очень цениться!

1 Ответ

0 голосов
/ 11 июля 2010
...