Spring3, Security3, Hibernate, MYSQL - Как установить отслеживание пользователей в базе данных - PullRequest
0 голосов
/ 30 марта 2011

Первый проект: Spring3, Security3, Hibernate, MYSQL - Как установить отслеживание пользователей в базе данных

Я работаю над своим первым проектом с Spring3, Security3, Hibernate, MYSQL.

У меня отлично работает система, я использую Spring3 и Security3 для входа в MySQL и использование Spring3 MVC, Hibernate и MYSQL для системных данных.

У меня есть ряд вопросов. После того, как я войду в систему, Spring Security сохранит пользовательский объект где-нибудь, что я могу иметь Hibrernate доступ к нему. Я хочу, чтобы Hibernate поместил имя пользователя или роль в каждую вставку в базу данных, чтобы Я делаю мои поиски, которые система знает, чтобы показать данные только для этого пользователя и только для этого пользователя?

это как будто должно быть легко. Spring должен сохранять пользователя где-то, к которому может обращаться hibernate.

пожалуйста, помогите мне

1 Ответ

0 голосов
/ 03 апреля 2011

После аутентификации пользователя вы можете получить доступ к деталям сеанса аутентификации пользователя:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

SecurityContext позволит вам захватить объект Authentication, и из этоговы можете получить принципала (объект, представляющий аутентифицированного пользователя), роли и т. д. Вы можете проверить эту информацию и определить, какие данные должны храниться / отображаться для каждого пользователя.

Если вы можете добавить фильтр запроса илиперехватчик (словарь может варьироваться в зависимости от фреймворка), вы могли бы сделать эти проверки безопасности достаточно абстрактными / универсальными, чтобы их можно было применить ко всему веб-приложению (вместо добавления нескольких строк кода для каждого метода ресурса, который вы пытаетесь защитить).В любом случае, SecurityContext должен приблизить вас к тому, что вы хотите.

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