springboot整合swagger之拦截器配置
参考网址:
参考自己总结的springboot整合swagger2排除拦截器配置
https://blog.csdn.net/shaoming314/article/details/112814469
参考别人分别配置了swagger2和swagger3排除拦截器配置
https://blog.csdn.net/Ju3tinZz/article/details/115762426?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162394059716780357236649%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162394059716780357236649&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-115762426.first_rank_v2_pc_rank_v29&utm_term=swagger3%E6%8E%92%E9%99%A4%E6%8B%A6%E6%88%AA&spm=1018.2226.3001.4187
情景再现
本项目使用了jwt整合注册登录,如果直接访问jwt会返回错误的json信息
说明:
swagger3的访问路径为:ip:端口号/swagger-ui
knife4j的访问路径为:ip:端口号/doc.html
我这个项目整合了swagger3+knife4j
具体配置
swagger3+knife4j
import com.yunkai.interceptor.JwtInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
//添加拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
//定义排除swagger访问的路径配置
/**
* 说明:此项目整合了swagger3+knife4j
* `knife4j的功能比swagger3功能更加强大,建议使用
* 但是`knife4j是基于swagger,所以整合`knife4j,前提是整合好swagger
* 注意事项:
* 排除路径时候一定要排除 /doc.html
* 因为这是`knife4j在线接口文档的在线访问路径(ip:端口号/doc.html)
*/
String[] swaggerExcludes=new String[]{"/swagger**/**","/doc.html","/swagger-resources/**","/webjars/**","/v3/**"};
registry.addInterceptor(new JwtInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/user/login","/user/register")
//添加一个测试不需要测试和登录的接口,用户测试请求
.excludePathPatterns("/user/test/nologin")
.excludePathPatterns("/index.html","/","/user/login","/css/*","/js/**","/img/**")
.excludePathPatterns(swaggerExcludes);
}
}
swagger2
// 请求路径排除
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor()
.addPathPatterns("/**")
.excludePathPatterns("/swagger-resources/**")
.excludePathPatterns("/webjars/**")
.excludePathPatterns("/v2/**")
.excludePathPatterns("/swagger-ui.html/**");
super.addInterceptors(registry);
}
总结
-ui.html/**");
super.addInterceptors(registry);
}
## 总结
swagger配置这是项目的准备工作,我们要严格配置好