Где я должен хранить ключ идентификатора пользователя в Spring / Spring-Security в веб-приложении? - PullRequest
0 голосов
/ 26 ноября 2010

Как только пользователь проходит аутентификацию, у меня появляется Object ID пользователя.

Где находится «лучшее» место для хранения этого в Spring с помощью Spring-Security (это веб-приложение)?

  • Сеанс кажется не элегантным, потому что тогда у меня есть два местоположения, управляющих аутентификацией (мне нужен специальный код для управления удалением объекта sesion, когда пользователь вышел из системы по любой причине)
  • currentContext.getAutentication (). GetDetails (...) кажется сложным, потому что создается впечатление, что он генерирует подробный объект для каждого запроса

Существует много вариантов, но, похоже, лучший из них где-то рядом с механизмом аутентификации Spring-Security.

Ответы [ 3 ]

1 голос
/ 26 ноября 2010

Я не верю, что данные аутентификации создаются для каждого запроса.Я считаю, что они создаются один раз за аутентификацию.

1 голос
/ 03 декабря 2010

Я не уверен в этом вопросе. Вы не должны хранить это. Есть несколько способов получить его.

  1. SecurtiryContextHolder, если вам нужен объект UserDetails
  2. request.getRemoteUser (), если вам нужен только loginId
0 голосов
/ 26 ноября 2010

Я считаю, что это сильно зависит от того, как вы используете ID пользователя.

Например: если вам нужен идентификатор пользователя глубоко внутри вашего уровня бизнес-сервисов, а уровень бизнес-сервера реализован, вам ничего не нужно знать о веб-приложении.вещи (Session, ...) до сих пор, тогда было бы разумно не использовать HttpSession, чтобы он оставался «свободным от веб-материалов».

Кстати: третий подход, который вы можете принять во внимание,это использовать сессионный компонент области видимости.

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