2つのレイヤーを使用して自分のWebサイトを保護する必要があります。最初はLDAPチェック、次にユーザー名/パスワードの入力です。私は両方のチェックの両方のカスタム認証フィルターを書いています。Spring Security 3の累積フィルタ
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フィルタのdoesnれます両方の役割を追加する私はすぐにアクセスを拒否されます。すぐにあなたのLDAPフィルタが正常に返すようので
多く、私はそのアプローチが機能しないだろうと思い
ありがとうございました。 – davecass