45 votes

Spring MVC 3, Interceptor sur tous à l'exception de certains chemins définis

Est-il possible d'appliquer un intercepteur à tous les contrôleurs et actions, à l'exception de certains définis ?

Juste pour être clair, je ne suis pas intéressé à appliquer un intercepteur sur une liste de ceux définis. Je veux définir ceux à exclure.

Merci!

67voto

gamerkore Points 495

Depuis Spring 3.2, ils ont ajouté cette fonctionnalité avec la balise

 mvc:exclude-mapping

Voir cet exemple de la documentation Spring :

 <mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<mvc:interceptor>
    <mvc:mapping path="/**"/>
    <mvc:exclude-mapping path="/admin/**"/>
    <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
    <mvc:mapping path="/secure/*"/>
    <bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>

voici le lien vers la doc

24voto

Abdullah Khan Points 5116

Pour la configuration basée sur Java, à partir de la doc

 @Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LocaleInterceptor());
        registry.addInterceptor(new ThemeInterceptor()).addPathPatterns("/**").excludePathPatterns("/admin/**");
        registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/secure/*");
    }

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X