为了工作,我正在开发一个Java项目,我们需要将授权令牌传递给每个请求标头。
在我的data = [
(1, ['w1','w2','w3']),
(2, ['w3','w4'])
]
df = sqlCtx.createDataFrame(data, ["ID", "Words"])
df.show()
#+---+------------+
#| ID| Words|
#+---+------------+
#| 1|[w1, w2, w3]|
#| 2| [w3, w4]|
#+---+------------+
文件中,我有以下内容:
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");
}
按钮,我可以点击:
我可以在此处粘贴令牌:
...将令牌插入每个请求的标头中。
但是,Swagger Docs或其他地方的示例中没有关于如何自动插入身份验证令牌的文档。目标是通过调用内部API(使用活动目录进行身份验证)来检索身份验证令牌,并自动将该令牌应用于请求标头。
我可能会提取Swagger HTML / JS并修改Authorize
页面或JavaScript以自动调用API并使用令牌填充对话框,但这种方法的缺点是Swagger可以'如果我直接修改这些文件,我很容易更新。
是否有Java方法将自定义API密钥插入请求标头?
答案 0 :(得分:2)
您可以在配置类中尝试
@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()));
}
}