由于拦截器会把所有请求都拦截下来,而swagger(knife4j)的接口页面也会被拦截,所以需要进行排除拦截设置。

拦截器配置代码

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

    @Override   // 配置拦截器
    public void addInterceptors(InterceptorRegistry registry) {
        // 对swagger的请求不进行拦截
        String[] excludePatterns = new String[]{"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**",
                "/api", "/api-docs", "/api-docs/**", "/doc.html/**"};
        registry.addInterceptor(new MyInterceptor())
                // 拦截所有请求
                .addPathPatterns("/**")
                // 排除指定请求
                .excludePathPatterns(excludePatterns);
    }
}

PS:经过测试knife4j的doc.html页面可以正常使用,不会被拦截器拦截。
但swagger的swagger-ui.html会被拦截,希望有大佬看到能指正一下。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐