MVC Java Config - HandlerInterceptor not excluding paths

后端 未结 5 743
孤城傲影
孤城傲影 2021-02-07 15:37

I have a MVC Java configuration but the HandlerInterceptor is not excluding some patterns.

At the line marked with xxx, if

1) I ad

5条回答
  •  走了就别回头了
    2021-02-07 16:36

    The patterns you specify for include and exclude are ant bases path expressions and not normal URL expressions as you would express in web.xml to map a servlet or filter for instance.

    To make an exclude work you have to also include an include path (as you already noticed with your second remark). Next change your exclude pattern to /**/*.ecxld.

    Your current expression *.ecxld would match file.ecxld but it will not match /file.ecxld or even /foo/file.ecxld. The /**/ part takes care of that. However to make it work it also requires an includePathExpression (the code checks if there is an includePathExpression when not it is ignoring the excludePathExpression).

    So in short change your configuration to the following should solve your problem.

    @Configuration
    public class MyMVCConfigurerAdapter extends WebMvcConfigurerAdapter {
    
     @Override
     public void addInterceptors(final InterceptorRegistry registry) {
    
         registry.addInterceptor(getInterceptorOne());
    
         registry.addInterceptor(getMyHandlerInterceptor())
                     .includePathPatterns("/**")
                     .excludePathPatterns("/**/*.ecxld");  
    
         registry.addInterceptor(getInterceptorTwo()
         );
    
     }
    

提交回复
热议问题