から私はいくつかのアクセス例外を処理することでSimpleMappingExceptionResolver
で春のWeb MVC構成を持っている:アクセス春のWeb MVC例外リゾルバ春のセキュリティコンテキスト
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:defaultErrorView="uncaughtException">
<property name="exceptionMappings">
<props>
<prop key=".DataAccessException">dataAccessFailure</prop>
<prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop>
<prop key=".TypeMismatchException">resourceNotFound</prop>
<prop key=".MissingServletRequestParameterException">resourceNotFound</prop>
</props>
</property>
</bean>
また、私は希望の春のセキュリティコンテキストコンフィギュレーションを持っていますいくつかの認証に関連する例外を処理します。現在、私は次のように設定ExceptionMappingAuthenticationFailureHandler
を持っている:
<form-login authentication-failure-handler-ref="exceptionMapper" ... />
...
<bean id="exceptionMapper" class="org.springframework.security.web.authentication.ExceptionMappingAuthenticationFailureHandler" >
<property name="exceptionMappings">
<props>
<prop key=".CredentialsExpiredException">/resetPassword</prop>
<prop key=".BadCredentialsException">/login?failure=true</prop>
</props>
</property>
</bean>
私はMVC構成にセキュリティマッピングを移動することで、単一の例外処理の設定にこれらを統合するためにいいだろうと思いました。私の問題は、Spring Securityにform-login
のauthentication-failure-handler
がリゾルバを使用するように指示する方法を知らないことです。
1)authentication-failure-handler-ref
はハンドラではなく、リゾルバを期待し、2)MVC構成で定義されているすべてのBeanはセキュリティコンテキストから見えていないようですので、私はちょうどSimpleMappingExceptionResolver
にid
を追加することはできません。 ..
ありがとうございました!