X509フィルタ(サブクラス:X509AuthenticationFilter
)を使用したカスタムフィルタがあります。 X509フィルターの唯一の仕事は、要求から証明書を取り出すことです。資格情報が無効な場合は、対応するAuthenticationProvider
があり、BadCredentialsException
がスローされます。私の意図は、AuthenticationProvider
がBadCredentialsException
を投げたときに、BadCredentialsException
が要求をmessage.jsp
に転送することになるということです。しかし、それはそうしない。デバッグ時に、例外がスローされ、キャッチされ、WebAttributes.AUTHENTICATION_EXCEPTIONの下に格納されていることに気づきましたが、他のSpring SecurityクラスのどれもExceptionを利用していないようで、失敗ハンドラを使用する方法が見つかりません。Spring Security X.509認証で障害処理が機能しないのはなぜですか?
<security:http auto-config="false" pattern="/role/**" access-decision-manager-ref="adm" entry-point-ref="http403EntryPoint">
<security:anonymous enabled="false"/>
<security:access-denied-handler error-page="/message.jsp"/>
<security:custom-filter ref="authFilter" position="PRE_AUTH_FILTER" />
</security:http>
<bean id="http403EntryPoint" class="..." />
<bean id="authFilter" class="...">
<property name="authenticationManager" ref="authenticationManager" />
<property name="continueFilterChainOnUnsuccessfulAuthentication" value="false" />
</bean>
私はauthFilter
ためPRE_AUTHとX509の両方のフィルタオプションを試してみました。また、continueFilterChainOnUnsuccessfulAuthentication
オプションがある場合とない場合のauthFilter
を試しました。何も違いはなく、エラーは春のセキュリティでは処理されません。
私は何をしたいことです:春のセキュリティフレームワークが提供するエラー処理とX509認証を行うための
方法。私はSpring Securityがフィルタを事前認証またはX509のどちらかの位置に置く必要があるかもしれないとは思うが、それが「事前認証」であるかどうかは気にしない。私はどのようにこの作業または見て何を具体的に取得するためのヒントをしたいと思います。次のように(BadCredentialsException
が延びる)キャッチされないAuthenticationException
によるページにリダイレクトスプリングセキュリティにおける通常
すべて、以下アブラハムの答えが作業を行いますが、この問題は正式に4.1のリリースですぐに固定され、春のセキュリティチームのチケットHTTPSを参照してください/ /github.com/spring-projects/spring-security/issues/3389 – KyleM