Загрузка URL перехвата из БД в Spring Security 3.0.2 - PullRequest
5 голосов
/ 23 июня 2011

Я создаю проект Spring 3, который использует Spring Security.

Это часть моего текущего файла защиты контекста:

<http auto-config="true" use-expressions="true" >
    <intercept-url pattern="/login.htm" access="permitAll"/>
    <intercept-url pattern="/admin/*" access="hasRole('ROLE_ADMIN') and fullyAuthenticated"/>
    <intercept-url pattern="/hello*" access="hasRole('ROLE_ANONYMOUS')"/>

Весь этот URL я хочу загрузить из БД (из какого-то DAO). т.е. я хочу динамически проверять права доступа для любого URL

Как я могу сделать это правильно.

1 Ответ

2 голосов
/ 23 июня 2011

Вы можете сделать это, используя Защита объектов домена (ACL) .

Или вы можете реализовать подкласс AbstractSecurityInterceptor.

Или вы можете сделать это в специальном коде;т.е. реализовать проверки доступа где-нибудь в вашем контроллере и выдать AuthenticationException, если запрашивающий объект не имеет требуемых прав.

Все они заканчиваются фильтрами SpringSecurity, перехватывающимиAuthenticationException на выход и принятие соответствующих действий;например, перенаправление на страницу входа или возврат ответа со статусом «отказано в доступе».

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