Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Swagger中自动检索授权令牌?_Java_Swagger_Swagger Ui - Fatal编程技术网

Java 如何在Swagger中自动检索授权令牌?

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() .

为了工作,我正在进行一个Java项目,其中我们需要向每个请求头传递一个授权令牌

在我的
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网页,以便修改“试用”请求,或者。相关:。