Конфигурация для отправки заголовка X-API-ключа на Swagger не работает - PullRequest
0 голосов
/ 17 октября 2019

Исследуя Интернет, я нашел несколько способов отправки заголовков с помощью swagger для проверки подлинности.

Мой код в настоящее время выглядит следующим образом:

@Value("${swagger.api.title}")
String title;

@Value("${swagger.api.description}")
String description;

@Value("${swagger.api.terms.of.service.url}")
String termsOfServiceUrl;

@Value("${swagger.api.license}")
String license;

@Value("${swagger.api.license.url}")
String licenseUrl;

@Value("${swagger.api.version}")
String version;

@Bean
public Docket api(){
    return new Docket(DocumentationType.SWAGGER_2).select()
            .paths(regex(".*" + RestConstants.APPLICATION_NAME + "/.*")).build().apiInfo(apiInfo())
            .securitySchemes(Arrays.asList(apiKey())).securityContexts(Arrays.asList(securityContext()));
}

@Bean
public SecurityConfiguration security(){
    return SecurityConfigurationBuilder.builder().additionalQueryStringParams(null)
            .useBasicAuthenticationWithAccessCodeGrant(false).build();
}

private ApiInfo apiInfo(){
    return new ApiInfoBuilder().title(title).description(description).termsOfServiceUrl(termsOfServiceUrl)
            .license(license).licenseUrl(licenseUrl).version(version).build();
}

private ApiKey apiKey(){
    return new ApiKey("X-API-key", "X-API-key", "header");
}

private SecurityContext securityContext(){
    return SecurityContext.builder().securityReferences(defaultAuth())
            .forPaths(PathSelectors.regex(".*" + RestConstants.APPLICATION_NAME + "/.*")).build();
}

private List<SecurityReference> defaultAuth(){
    final AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
    final AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
    authorizationScopes[0] = authorizationScope;
    return Arrays.asList(new SecurityReference("X-API-Key", authorizationScopes));
}

Свэггер выглядит следующим образом:

Изображение чванства

НоЗапрос, который он делает при выполнении теста, следующий, где X-API-ключ заголовка не появляется:

curl -X GET "*******" -H "принять: application / json "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...