Как сгенерировать пользовательский JSESSIONID на основе некоторого хеша пользовательских данных для репликации сеанса - PullRequest
5 голосов
/ 14 мая 2010

Можно ли переопределить встроенный генератор Tomcat JSESSIONID, чтобы иметь возможность создавать пользовательские значения этого файла cookie на основе имени пользователя?

Зачем мне это нужно: у меня есть балансировщик нагрузки с «липкими сессиями», настроенный на маршрутизацию запросов с одинаковым JSESSIONID на один и тот же сервер, и я хочу предотвратить ситуацию, когда один и тот же пользователь может запустить два разных сеанса на разных серверы.

P.S .: все это о Amazon EC2

Ответы [ 2 ]

3 голосов
/ 14 мая 2010
1 голос
/ 14 мая 2010

Вы можете сделать это, определив свой собственный настроенный менеджер сеансов,

http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html

Однако, это, вероятно, не работает для вашего варианта использования. Вы не знаете имя пользователя до того, как пользователь войдет в систему, но для входа необходимо создать сеанс.

Я думаю, что передача сессии на сервер является лучшим подходом. Вы можете использовать менеджер сеансов JDBCStore, поставляемый с Tomcat. Вы также можете найти реализацию memecached.

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

...