У нас есть одно веб-приложение, которое создается для обслуживания нескольких доменов TLD региональных регионов. Кроме того, веб-приложение также поддерживает тысячи динамических поддоменов. Примеры включают в себя:GlassFish v3 JSESSIONID Несколько поддоменов и TLD
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
В то время как мы можем понять, что различные домены верхнего уровня домена приводят к появлению новых сеансов проблема начинает появляться с последними 2 приведенных выше примерах, которые также приводят к новым экземплярам сессии. Например, если пользователь:
- Переход к: www.example.co.uk новый сеанс создается, а затем ...
- Переходов по ссылке: fred123.example.co.uk новой сессии создаются, а затем ...
- клики по ссылке: 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
Кто-нибудь знает, как это может быть достигнуто. Я нашел следующий Q & Однако в нашем случае поддоменов ДВА не весь матча:
An issue dealing with JSP Session
Ergo решение статический конфигурирования солнца-web.xml или с использованием раствора Servlet 3.0 не отображается помогать. Также создание оболочки ответа фильтра не работает, так как cookie JSESSIONID назначается на более низких уровнях сервера приложений и не подвергается перехвату веб-приложения.
Единственные другие два варианта, я думаю, я есть:
а) заплата код v3 GlassFish, который устанавливает JSESSIONID значение домена cookie для полного доменного имени, так что некоторые обнажение происходит ИЛИ
б) Делая в Sun Web Server 7.0 обратного прокси-уровня, который мы должны перезаписать значение домена cookie JSESSIONID, возвращенное в заголовке set-cookie, однако я не смог найти примеры того, как это сделать.
Может ли кто-нибудь помочь в решении этой проблемы ? Любые подсказки/помощь будут очень оценены!
Включите ли все эти URL-адреса уникальную веб-страницу? –
Да. Все они сопоставляются с одним webapp. Изначально будет добавлено 8 региональных TLD, и позже будет добавлено больше, и поскольку у нас будет 2 сервера LB'd с 6 экземплярами из старинной рыбы, он начинает довольно неудобно развертывать отдельные webapps с целью предоставления различных значений cookie домена JSESSIONID. Кроме того, независимо от отдельных веб-приложений, все еще проблема для динамических доменов. Мысли ??? – nikolaosinlight
Две области, на которые я смотрю: 1) Некоторые способы получения Sun Web Server 7.0 RP для повторной записи значения домена cookie JSESSIONID, заданного в ответе заголовка, возвращаемом сервером GlassFish v3. Кто-нибудь знает как? 2) Запись модифицированной версии класса в GlassFish v3, которая определяет полное доменное имя значения домена cookie JSESSIONID, чтобы оно могло лучше установить значение. Фактически, именно так файлы cookie в нашем текущем коде вычисляют его значение домена cookie для установки выбранной/определенной локали домена. Кто-нибудь знает, какой класс в коде должен быть включен? – nikolaosinlight