Мне нужно защитить свой сайт, используя 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 не добавляет обе роли, мне сразу отказывают в доступе.
Очень ценится