由于拦截器会把所有请求都拦截下来,而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会被拦截,希望有大佬看到能指正一下。