Как настроить Springfox для генерации swagger, который добавил заголовок auth для всех запросов в частных конечных точках? - PullRequest
0 голосов
/ 28 января 2019

Конфигурация безопасности Spring

@Bean
public SecurityWebFilterChain securityWebFilterChainBean(ServerHttpSecurity httpSecurity) {
    httpSecurity.authorizeExchange()
                .pathMatchers("/v2/api-docs").permitAll()
                .pathMatchers("/configuration/ui").permitAll()
                .pathMatchers("/swagger-resources/**").permitAll()
                .pathMatchers("/configuration/security").permitAll()
                .pathMatchers("/swagger-ui.html").permitAll()
                .pathMatchers("/webjars/**").permitAll()
                .pathMatchers("/v2/**").permitAll()

                .anyExchange().authenticated();
    return httpSecurity.build();
}

Контроллер отдыха

@RestController
public class MyController {
    @PostMapping("myPath")
    public MyResponse newLoansOffers(@RequestBody MyRequest request) {
        return new MyResponse();
    }
}

Конфигурация Spring fox:

@Bean
public Docket api() {
    Class[] clazz = {AuthenticationPrincipal.class};

    return new Docket(DocumentationType.SWAGGER_2)
            .securitySchemes(Lists.newArrayList(apiKey()))
            .select()
            .paths(PathSelectors.any())
            .build();
}

private ApiKey apiKey() {
    return new ApiKey("xauth", "X-Auth-Token", "header");
}

В чем проблема?

Я нажимаю на кнопку авторизации:

enter image description here

и вводу действительного значения

enter image description here

Но когда я отправляю myPath запрос от пользовательского интерфейса Swagger - заголовок X-Auth-Token не передается с запросом.: (

Как я понимаю, Springfox не "учитывает" конфигурацию безопасности Spring во время генерации чванства:

  1. Есть ли способ сделать это?
  2. Еслинет, как сделать генерацию сваггера с добавленным заголовком авторизации только для частных конечных точек?
...