J'ai une configuration MVC Web Spring avec un SimpleMappingExceptionResolver
en elle pour gérer des exceptions d'accès:Accès Spring Web MVC Exception résolveur de contexte Spring Security
<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>
J'ai aussi une configuration de contexte Spring Security où je voudrais gérer certaines exceptions liées à l'authentification. À l'heure actuelle, j'ai un ExceptionMappingAuthenticationFailureHandler
mis en place comme suit:
<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>
Je pensais que ce serait bien de consolider ceux-ci dans une configuration de gestion des exceptions en déplaçant les applications de sécurité à la configuration MVC. Mon problème est que je ne sais pas comment dire à Spring Security que je veux form-login
authentication-failure-handler
pour utiliser le résolveur.
Je ne peux pas ajouter un id
à SimpleMappingExceptionResolver
parce que 1) authentication-failure-handler-ref
attend un gestionnaire, pas un résolveur, et 2) les haricots qui sont définis dans la configuration MVC ne semble pas être visible à partir du contexte de sécurité. ..
Merci pour toute aide!