2015-07-24 2 views
1

Я начал использовать весеннюю сессию успешно с одним nginx, двумя котами и одним сервером redis для реализации кластерных сеансов и возникли некоторые вопросы. Прежде всего, я имею в виду два полностью приложения, когда я говорю о разных приложениях, я не говорю о двух экземплярах одного и того же приложения.Возможно ли использовать два разных приложения с пружинным сеансом с одним сервером redis?

Могу ли я использовать два или более разных приложения для весеннего сеанса для хранения сеансов только с одним сервером redis?

Эти приложения могут работать в разных экземплярах tomcats?

Как сеанс Spring избегает конфликта идентификаторов сеансов между различными приложениями с одним сервером redis?

Нужно ли добавлять суффикс или префикс id, чтобы избежать этой проблемы?

ответ

2

Весенняя сессия в настоящее время не поддерживает сеансы обзора. См. gh-166 для получения подробной информации об этом.

Spring Session генерирует безопасный случайный идентификатор с высоким уровнем энтропии для идентификаторов сеанса, поэтому крайне редко возникает вероятность столкновения.

Это означает, что вы можете использовать один и тот же экземпляр Redis для нескольких приложений с использованием Spring Session так долго, как вы хорошо со следующим утверждением:

Злоумышленник может использовать идентификатор сеанса приложения с Application B. Почему это важно? Рассмотрим следующую ситуацию:

  • Приложение A - это общедоступное приложение, для которого любой пользователь может создать учетную запись.
  • Приложение B - частное приложение, которое могут только зарегистрированные пользователи.
  • Злоумышленник создает учетную запись и аутентифицируется с помощью приложения A
  • Пользователь копирует свой идентификатор сеанса для приложения A. Они перемещаются в приложение B и вставляют идентификатор сеанса в свои файлы cookie для приложения B и теперь аутентифицируются.

Это может быть и не проблема для вас. Например, хорошая практика обеспечения безопасности обеспечит правильное разрешение пользователя путем поиска роли ADMIN в приложении B. Приложение A не будет заполнять эту роль, поэтому, пока пользователь аутентифицируется с помощью приложения B, они не имеют права использовать его.

+0

Я оцениваю весеннюю сессию, и она отлично качается. Я также переношу около тридцати корпоративных приложений из xml в конфигурацию java spring. Главная задача теперь - конфигурация java-безопасности весны. У нас есть собственное решение Single SignOn, и мы интегрируем его с весенней безопасностью. Это SSO заботится о проблеме, о которой вы рассказали о вредоносном пользователе, который вы описали. Спасибо за ваш ответ @ rob-winch. Извините мою опечатку. –

+0

Я тогда ответил на ваш вопрос? Если да, можете ли вы принять ответ? Если нет, можете ли вы указать, где я упал? –

+0

Я получил и принял ваш ответ. Еще раз спасибо. –

Смежные вопросы