Хотя с моей точки зрения это легко сделать с помощью IIS, я полный новичок в Tomcat и понятия не имею, как установить статические значения для содержимого файлов cookie. Да, я прочитал о последствиях для безопасности и в конечном итоге буду получать доступ через SSL, поэтому меня это не беспокоит. Кроме того, я прочитал спецификацию Servlet 3.0 о том, что значение не меняется, и я принимаю это.
В IIS я бы просто установил заголовок HTTP с именем Set-Cookie с произвольной настройкой WebServerSID и значением 1001.
Затем в VIP-балансировщике нагрузки, содержащем эту группу реальных серверов, установите значение WebServerSID на уровне VIP, а для первого веб-сервера значение cookie 1001 и так по одному для остальных машин 1002 для сервера 2, 1003 для сервера 3.
Это обеспечивает сходство сеансов с помощью файлов cookie до тех пор, пока клиент не закроет браузер.
Как это можно сделать с Tomcat 7.0.22?
Я вижу, что между Tomcat 6.x и 7.x произошло много изменений конфигурации в отношении файлов cookie и их настройки. Я пробовал следующее после обширных исследований за последнюю неделю.
В web.xml: (это отключит перезапись URL в Tomcat 7.x) <tracking-mode>COOKIE</tracking-mode>
под элементом сеанса по умолчанию
В context.xml: (файлы cookie по умолчанию верны, но я указал явно, так как не могу заставить его работать)
cookies=true
sessionCookiePath=/
sessionCookieName=WebServerSID
sessionCookieName=1001
У меня есть 2 записи в context.xml для sessionCookieName, потому что эквивалентные команды из Tomcat 6.x выглядят так, как будто они были объединены в 1. См. http://tomcat.apache.org/migration-7.html#Tomcat_7.0.x_configuration_file_differences
Извлекать:
Системное свойство org.apache.catalina.SESSION_COOKIE_NAME: оно было удалено. Аналогичный эффект можно получить, настроив атрибут sessionCookieName для глобального context.xml (в CATALINA_BASE/conf/context.xml). Системное свойство org.apache.catalina.SESSION_PARAMETER_NAME: оно было удалено. Аналогичный эффект можно получить, настроив атрибут sessionCookieName для глобального context.xml (в CATALINA_BASE/conf/context.xml).
Если это неправильно, то я просто не понимаю требуемый синтаксис и не могу найти нигде, где это было бы просто написано черным по белому.
В Tomcat 6.x я бы использовал параметры Java в конфигурации, например:
-Dorg.apache.catalina.SESSION_COOKIE_NAME=WebServerSID
-Dorg.apache.catalina.SESSION_PARAMETER_NAME=1001
Приложение, которое я использую, не имеет ни одного из этих значений, установленных где-либо еще, поэтому это не приложение.
Все эти настройки находятся в файлах context/web/server.xml на базе Catalina.
В конце концов, что мне нужно увидеть в заголовках ответов в Set-Cookies: (как видно с помощью Fiddler):
SID веб-сервера = 1001
НЕТ
JSESSIONID=as8sd9787ksjds9d8sdjks89s898
заранее спасибо
С уважением