问题描述
我需要使用默认的api密钥从招摇中发送所有请求,但是如果在“授权”按钮中指定了任何特定的api密钥,则必须在请求中使用它而不是第一个。我怎样才能做到这一点?谢谢!
这是我的SwaggerConfig
@Bean(name = "authSwaggerApi")
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.forCodeGeneration(true)
.securityContexts(Lists.newArrayList(securityContext()))
.securitySchemes(Lists.newArrayList(apiKey()))
.useDefaultResponseMessages(false)
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build()
.apiInfo(apiEndPointsInfo());
}
private ApiKey apiKey() {
return new ApiKey(SecurityConstants.TOKEN_TYPE,SecurityConstants.TOKEN_HEADER,"header");
}
private SecurityContext securityContext() {
return SecurityContext.builder()
.securityReferences(defaultAuth())
.forPaths(PathSelectors.regex("^((?!(/login|/token)).*)$"))
.build();
}
private List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global","accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
return Lists.newArrayList(new SecurityReference(SecurityConstants.TOKEN_TYPE,authorizationScopes));
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)