Поддерживать несколько сеансов - PullRequest
0 голосов
/ 26 марта 2019

У меня есть один сценарий, в котором нам нужно поддерживать несколько сеансов, как для аккаунтов Google. Пользователь может добавить несколько учетных записей в разных вкладках, и все они будут иметь свое конкретное содержание. Например, в Tab1 user1 вошел в систему, а в Tab2 user2 вошел в систему

Мы используем Angular во внешнем интерфейсе и JAVA.

Мысль об использовании localalstorage во внешнем интерфейсе, который будет иметь массив пользователей. И мы передадим текущего пользователя в URL Например: в Tab1 URL будет выглядеть как http://localhost:8080/account/user1/, а в tab2 это будет http://localhost:8080/account/user2/

Теперь проблема в том, что HttpSession будет отличаться в обоих случаях, и в коде мы установили некоторые атрибуты в HttpSession. Насколько я понимаю, ServletContainer будет управлять различными сессиями, и их можно идентифицировать с помощью sessionId. Проблема, которую я вижу, - это способ передать sessionId в запросе на Java, чтобы мой серверный код имел этот сеанс. Например: если tab1 открыт, то должен быть выбран сеанс, связанный с user1, а если tab2 открыт, то сеанс связан с user2.

1 Ответ

0 голосов
/ 26 марта 2019

Использование Spring Session API версия 1.3.4 .RELEASE - как описано в официальной документации здесь .

Spring Session предоставляет API и реализации для управления информация о сеансе пользователя.

Несколько сеансов браузера - Spring Session поддерживает управление несколькими пользовательские сеансы в одном экземпляре браузера (то есть несколько аутентифицированные аккаунты, похожие на Google).


Обратите внимание, эта функция была удалена с версии 2.1.2.RELEASE

11,4. Отброшенная поддержка

Как часть изменений в HttpSessionStrategy и его согласованности с коллегой из реактивного мира, поддержка управления сессиями нескольких пользователей в одном браузере Экземпляр был удален. Внедрение нового API для замены эта функциональность рассматривается в будущих выпусках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...