springboot拦截器放行swagger
时间: 2023-11-04 18:57:17 浏览: 308
springboot拦截器
在Spring Boot中,可以通过配置拦截器来放行Swagger。根据提供的引用内容,可以看出有两种方法可以实现:
1. 在WebConfigurer类中使用excludePathPatterns方法来放行Swagger的路径,具体代码如下:
```java
@Configuration
public class WebConfigurer implements WebMvcConfigurer {
@Autowired
private LoginInterceptor loginHandlerInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration ir = registry.addInterceptor(loginHandlerInterceptor);
// 拦截路径
ir.addPathPatterns("/*");
// 不拦截路径
List<String> irs = new ArrayList<String>();
irs.add("/login");
irs.add("/api/*");
// 开放knife4j
irs.add("/doc.html");
irs.add("/service-worker.js");
irs.add("/swagger-resources");
ir.excludePathPatterns(irs);
}
}
```
2. 在WebMvcConfig类中使用excludePathPatterns方法来放行Swagger的路径,具体代码如下:
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器,并指定拦截的路径
registry.addInterceptor(new TokenInterceptor())
.excludePathPatterns("/cards/user/login")
.excludePathPatterns("/cards/user/getRedisPushData")
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**") // 放行Swagger
.excludePathPatterns("/cards/user/test");
}
}
```
这样配置之后,拦截器将放行Swagger相关的路径。
阅读全文