Контекст: веб-приложение - Java, Spring MVC, Spring Security
Для меня непонятно, какую информацию хранить / как выполнять определенные действия в веб-приложении (не принимайте пароли с учетомконечно), например, я могу:
- Извлечь пользователя (запрос БД) и сохранить сведения о пользователе в сеансе.
- Просто получить идентификатор пользователя (запрос БД) и сохранить его всеанс и получить его в DAO при необходимости.Безопасно ли хранить идентификаторы пользователей в сеансах?
- Область запроса.Не хранить что-либо в сеансе (конечно же, Spring по-прежнему хранит там информацию о безопасности). Если пользователь запросил действие - определите, аутентифицирован ли (? + Роль), определите его идентификатор (запрос db), извлеките его в DAO.Если пользователь запрашивает это действие снова, шаги должны будут повторяться.
Предполагается, что у моих таблиц БД всегда есть int id в качестве первичного ключа.Логин просто уникален.И, пожалуйста, не ограничивайтесь моими 3 подходами, это действительно простые примеры, я говорю о сохранении / сохранении данных (пожалуйста, не связывайте ORM с этим словом в этом контексте), которое является комбинацией запросов БД и используется дляDTO на стороне сервера в веб-приложении.
Я думаю, что чем больше деталей я храню в сеансе (или между запросами), тем легче мне управлять им, а также меньше запросов к базе данных.Если я сохраню эти данные в форме, не идентифицирующей конкретного пользователя, то проблем быть не должно?Например, если я храню «id = 5; fruit_id [] = 1,4,7; (извините, если синтаксис неправильный) скажем, в сеансе», это действительно не звучит идентифицирующее, если безопасность нарушена?