Стратегия управления действиями пользователя в Java-приложении - PullRequest
0 голосов
/ 24 ноября 2011

Контекст: веб-приложение - Java, Spring MVC, Spring Security

Для меня непонятно, какую информацию хранить / как выполнять определенные действия в веб-приложении (не принимайте пароли с учетомконечно), например, я могу:

  1. Извлечь пользователя (запрос БД) и сохранить сведения о пользователе в сеансе.
  2. Просто получить идентификатор пользователя (запрос БД) и сохранить его всеанс и получить его в DAO при необходимости.Безопасно ли хранить идентификаторы пользователей в сеансах?
  3. Область запроса.Не хранить что-либо в сеансе (конечно же, Spring по-прежнему хранит там информацию о безопасности). Если пользователь запросил действие - определите, аутентифицирован ли (? + Роль), определите его идентификатор (запрос db), извлеките его в DAO.Если пользователь запрашивает это действие снова, шаги должны будут повторяться.

Предполагается, что у моих таблиц БД всегда есть int id в качестве первичного ключа.Логин просто уникален.И, пожалуйста, не ограничивайтесь моими 3 подходами, это действительно простые примеры, я говорю о сохранении / сохранении данных (пожалуйста, не связывайте ORM с этим словом в этом контексте), которое является комбинацией запросов БД и используется дляDTO на стороне сервера в веб-приложении.

Я думаю, что чем больше деталей я храню в сеансе (или между запросами), тем легче мне управлять им, а также меньше запросов к базе данных.Если я сохраню эти данные в форме, не идентифицирующей конкретного пользователя, то проблем быть не должно?Например, если я храню «id = 5; fruit_id [] = 1,4,7; (извините, если синтаксис неправильный) скажем, в сеансе», это действительно не звучит идентифицирующее, если безопасность нарушена?

1 Ответ

1 голос
/ 24 ноября 2011

Ваш вопрос немного расплывчатый, и на него можно правильно ответить только в свете точных деталей. Тем не менее, в целом, хорошо хранить данные пользователя, включая идентификатор пользователя, в сеансе. Вероятно, объект User, отражающий любые поля / детали, которые есть в пользовательской таблице вашей базы данных. Также можно хранить уровни или роли аутентификации. Конечно, вы не должны хранить слишком много данных в сеансе.

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