Java 如何在Swagger中自动检索授权令牌?
为了工作,我正在进行一个Java项目,其中我们需要向每个请求头传递一个授权令牌 在我的Java 如何在Swagger中自动检索授权令牌?,java,swagger,swagger-ui,Java,Swagger,Swagger Ui,为了工作,我正在进行一个Java项目,其中我们需要向每个请求头传递一个授权令牌 在我的SwaggerConfig.java文件中,我有以下内容: @Override public Docket createDocket() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(getApiInfo()) ... .build() .
SwaggerConfig.java
文件中,我有以下内容:
@Override
public Docket createDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(getApiInfo())
...
.build()
.securitySchemes(Arrays.asList(apiKey()));
}
private ApiKey apiKey() {
return new ApiKey("Authorization", "api_key", "header");
}
这将启用一个授权按钮,我可以单击该按钮:
我可以在这里粘贴令牌:
…将令牌插入每个请求的标头中
但是,在中或其他地方没有任何关于如何自动插入身份验证令牌的文档。目标是通过调用内部API(使用active directory进行身份验证)来检索身份验证令牌,并将该令牌自动应用于请求头
我可能会提取Swagger HTML/JS并修改Swagger ui.HTML
页面或JavaScript,以自动调用API并用令牌填充对话框,但这种方法的缺点是,如果我直接修改这些文件,Swagger很难更新
有没有一种Java方法可以将自定义API键插入到请求头中?您可以在配置类中尝试这种方法
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private ApiKey apiKey() {
return new ApiKey("apiKey", "Authorization", "header");
}
@Bean
public Docket api(HttpServletRequest httpReq) {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.securitySchemes(Arrays.asList(apiKey()));
}
}
您需要自定义Swagger UI网页,以便修改“试用”请求,或者。相关:。