Создание сеанса с определенным идентификатором сеанса - PullRequest
0 голосов
/ 17 февраля 2012

спасибо вам, ребята, за просмотр моего поста.

Из-за серых зон в вопросах лицензирования у меня запущено два экземпляра tomcat. Я использую прокси Apache для беспрепятственного общения между ними.

Приложение 1 живет в TomcatA. App2 живет в tomcatB.

Оба требуют аутентификации пользователя и используют сеансы для хранения данных. App1 является единственным видимым для внешнего мира, и все запросы, поступающие в App2, генерируются JavaScripts из App1. К сожалению, App1 имеет сеанс и отправляет этот конкретный JSESSIONID на все запросы из App2. Поскольку в App2 нет сеанса с этим конкретным идентификатором, он возвращается с ошибками.

Есть ли способ инициализировать сеанс с определенным идентификатором? Есть ли способ изменить все запросы так, чтобы он помещал действительный идентификатор сеанса в заголовки.

Редактировать: Мне нужно, чтобы App2 понимал, что запросы, поступающие из App1 с определенным идентификатором сеанса, сопоставляются с сеансом, созданным App2.

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Даже если оба приложения находятся в одном и том же Tomcat, сеансы будут отличаться, поскольку они выдаются для каждого приложения отдельно.Лично я не совсем убежден в этом дизайне.

Если ваш вопрос заключается в том, как распространить аутентификацию в другое приложение, используйте приложение с единым входом, такое как Josso или CAS;для обмена данными сеанса вы можете использовать централизованный кеш, доступный из обоих приложений и доступный через JSON.

И да, данные сеанса неверны.

Обновление: может '• вы просто реализуете протокол квитирования, например: app2 / register / {app1 session id} - в этот момент вы оба держите оба идентификатора сеанса и можете сопоставлять друг друга.Это можно сделать также с помощью слушателя сеанса.

1 голос
/ 17 февраля 2012

Вы можете просто использовать другое имя файла cookie сеанса (или путь, если возможно) для вашего tomcatB.Таким образом, tomcatB будет рассматривать файл cookie JSESSIONID как любой другой файл cookie, а не файл cookie сеанса.

См. http://tomcat.apache.org/tomcat-7.0-doc/config/context.html.

...