Springboot添加拦截器配置excludePathPatterns不生效

Springboot添加拦截器配置excludePathPatterns不生效

Code

@Configuration
public class ServiceConfig implements WebMvcConfigurer {
    @Autowired
    LoginInterceptor loginInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/admin/checkLogin");
        WebMvcConfigurer.super.addInterceptors(registry);
    }
}

原因:

当访问***/admin/checkLogin路径时时,代码有bug触发了错误,这时路径被重定向为***/error,可以通过HttpServletRequest#getRequestURL检查,由于***/error不在excludePathPatterns中所以会被拦截器拦截。

解决方法:

  1. 解决excludePathPatterns访问路径的代码bug,就会生效。

  2. 添加***/error路径到excludePathPatterns