sa-token 全局过滤器 knife4j 接口文档访问失败

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 -> {
  
                });
    }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Sa-Token全局配置可以通过在系统中添加SaTokenConfig类来实现。在SaTokenConfig类中,可以配置全局的鉴权规则、路由拦截鉴权和全局错误处理等。 首先,可以使用`@Configuration`注解将SaTokenConfig类标记为配置类。然后,可以使用`@Bean`注解将SaToken的配置对象进行实例化,并进行相应的配置。 在全局鉴权规则的配置中,可以使用`@Bean`注解将`AuthRule`对象进行实例化,并通过`addRule`方法添加鉴权规则。例如,可以使用`AuthRule.checkPermit()`方法添加一个允许所有请求通过的鉴权规则。 在路由拦截鉴权的配置中,可以使用`@Bean`注解将`RouterInterceptor`对象进行实例化,并通过`addPathPatterns`方法添加需要进行鉴权的路由路径。例如,可以使用`addPathPatterns("/**")`方法添加对所有路径的鉴权拦截。 在全局错误处理的配置中,可以使用`@Bean`注解将`ErrorRender`对象进行实例化,并通过`setError`方法进行错误处理的配置。例如,可以使用`setError(e -> gson.toJson(Result.bad(e.getMessage())))`方法将错误信息转换为JSON格式并返回。 通过以上配置,可以实现Sa-Token全局配置,包括鉴权规则、路由拦截鉴权和全局错误处理等。这样,在系统中使用Sa-Token时,就可以按照全局配置进行鉴权和错误处理了。 #### 引用[.reference_title] - *1* *2* *3* [Spring-Cloud-Gateway 整合 Sa-Token 全局过滤器之路由匹配](https://blog.csdn.net/m0_51810668/article/details/130980207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值