网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

如何通过knife4j全局配置token设置?

GG网络技术分享 2025-10-25 11:48 2


文章浏览阅读4.3k次点赞3次收藏11次。本文深厚入解析了在Knife4j 2.0.9版本中怎么实现接口自动设置token。先说说 需开启求参数缓存,接着在登录接口的AfterScript阶段,依据服务端响应的code提取token,并进一步设置全局Header或Parameter呃。详情参考相关链接,了解AfterScript的更许多用方法。

SpringBoot整合Knife4j框架, 生成离线接口文档,并设置接口求头token默认值。若存在其他配置继承WebMvcConfigurationSupport,需许多些材料映射以避免失效。Knife4j框架支持设置返回字段的说说。

实现全局token设置

,增有力应用程序的平安性。在应用Knife4j作为接口文档管理工具时 用户token,并在Swagger全局配置中注册。实际操作中,只需在求头中传递含token的键值对。

在Swagger全局配置中添加拦截器,验证个个求的token。token值可从项目配置文件中读取。以下为将token添加到求头的代码示例:

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
    @Value
    private String secret;
    @Bean
    public Docket createRestApi {
        return new Docket
                .apiInfo)
                .select
                .paths)
                .build
                .securitySchemes));
    }
    private ApiInfo apiInfo {
        return new ApiInfoBuilder
                .title
                .description
                .version
                .build;
    }
    private SecurityScheme securityScheme {
        return new ApiKey;
    }
    @Override
    public void addInterceptors {
        registry.addInterceptor).excludePathPatterns;
    }
}

设置token

定义securityScheme告知Swagger怎么传递token。此处用header方式传递token。

在SpringBoot项目中集成Knife4j, 解决Swagger3.0默认不包含header参数的问题,通过修改yaml配置和Swagger3配置文件实现全局求头添加,包括token参数。

本文将介绍怎么在用knife4j作为接口文档管理工具时通过设置全局token搞优良接口文档的平安性。

顺利进行。选择“添加——配置元件——HTTP求默认值”。

Knife4j是一款基于springfox的开源Swagger接口文档生成工具。它不仅将Swagger风格的API文档转换为可视化界面还支持文档管理和测试接口。

从Spring的HandlerInterceptor接口开头, 新鲜建一个拦截器类TokenInterceptor,在preHandle方法中进行token鉴权校验。如果token认证输了则抛出异常提示用户。

设置token,全部接口访问都能生效。眼下有更优良的替代方案——knife4j。

求Swagger API时需在求头中添加含token的键值对。若token鉴权输了Swagger会响应401错误。

public class TokenInterceptor extends HandlerInterceptorAdapter {
    private final Logger logger = LoggerFactory.getLogger;
    @Override
    public boolean preHandle throws Exception {
        String token = request.getHeader;
        if ) {
            logger.warn;
            throw new ServiceException;
        }
        // 鉴权逻辑,如果token不正确,则返回401错误
        if ) {
            logger.warn;
            throw new ServiceException;
        }
        // 鉴权通过则接着来施行
        return true;
    }
}

注册拦截器

在Swagger的全局配置类SwaggerConfiguration中,通过Swagger2的Bean配置方法添加TokenInterceptor拦截器,如下所示:

标签:

提交需求或反馈

Demand feedback