Накопительные фильтры в Spring Security 3 - PullRequest
1 голос
/ 04 июля 2011

Мне нужно защитить свой сайт, используя 2 слоя.Сначала идет проверка LDAP, затем идет ввод имени пользователя / пароля.Я написал оба пользовательских фильтра аутентификации для обеих проверок.

В случае сбоя фильтра LDAP пользователя следует перенаправить на страницу «Отказано в доступе», а если имя пользователя / пароль не удалось, пользователя следует перенаправить обратно на страницу входа.

Как можноЯ установил эти фильтры в моем файле config.xml?Вот что у меня сейчас

<sec:http entry-point-ref="loginAuthenticationEntryPoint"
    auto-config="false" use-expressions="true">
    <sec:intercept-url pattern="/login.htm" access="isAnonymous()" />
    <sec:intercept-url pattern="/*"
        access="hasRole('ROLE_LDAP') and hasRole('ROLE_CRESTA')" />

    <sec:custom-filter ref="ldapAuthenticationFilter"
        before="FORM_LOGIN_FILTER" />
    <sec:custom-filter ref="usernameAuthenticationFilter"
        position="FORM_LOGIN_FILTER" />
</sec:http>

с

public class LdapAuthenticationFilter extends AbstractPreAuthenticatedProcessingFilter

и

public class CrestaUsernameAuthenticationFilter extends AbstractAuthenticationProcessingFilter

В настоящее время я думаю, что каждый фильтр должен добавить одну из необходимых ролей,но когда фильтр LDAP не добавляет обе роли, мне сразу отказывают в доступе.

Очень ценится

1 Ответ

0 голосов
/ 06 июля 2011

Я думаю, что этот подход не будет работать, потому что, как только ваш LDAP-фильтр успешно возвращается, Spring Security считает, что пользователь полностью аутентифицирован и пропускает фильтр имени пользователя / пароля.

В вашей ситуации я бы использовал стандартную форму безопасности входа в систему, настроив только мой UserDetailsService, чтобы вместо того, чтобы просто пойти в Cresta, чтобы создать экземпляр UserDetails, он также запросил бы у вашего сервера LDAP роли пользователей.

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