spring cloud gatway 集成 sa-token 全局过滤器 导致 knife4j 接口文档访问失败,需要放行接口文档路径。
注意:此处 knife4j 版本为 2.0.9 不同版本的路径是不一样的。具体请参考:
Knife4j文档请求异常
@Bean
public SaReactorFilter getSaReactorFilter() {
return new SaReactorFilter()
// 拦截地址
.addInclude("/**")
// 开放地址 接口文档
.addExclude(
"/doc.html",
"/doc.html*",
"/webjars/**",
"/img.icons/**",
"/swagger-resources/**",
"/**/v2/api-docs"
)
// 鉴权方法:每次访问进入
.setAuth(obj -> {
// // 登录校验 -- 拦截所有路由,开放登录地址
SaRouter.match("/**", "/login/**", r -> StpUtil.checkLogin());
})
// 设置跨域 必须
.setBeforeAuth(obj -> {
// ---------- 设置跨域响应头 ----------
SaHolder.getResponse()
// 允许指定域访问跨域资源
.setHeader("Access-Control-Allow-Origin", CorsConfiguration.ALLOWED_ORIGIN)
// 允许所有请求方式
.setHeader("Access-Control-Allow-Methods", CorsConfiguration.ALLOWED_METHODS)
// 有效时间
.setHeader("Access-Control-Max-Age", CorsConfiguration.MAX_AGE)
.setHeader("Access-Control-Expose-Headers", CorsConfiguration.ALLOWED_EXPOSE)
// 允许的header参数
.setHeader("Access-Control-Allow-Headers", CorsConfiguration.ALLOWED_HEADERS);
// 如果是预检请求,则立即返回到前端
SaRouter.match(SaHttpMethod.OPTIONS).back();
})
// 异常处理方法:每次setAuth函数出现异常时进入
.setError(e -> {
});
}
版权声明:本文为qq_37681291原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。