Как отобразить конечную точку "/ oauth / token" на swagger-ui? - PullRequest
1 голос
/ 03 мая 2020

Мой проект использует весеннее облако oauth для аутентификации пользователя с помощью конечной точки "/ oauth / token", но я не могу найти способ отобразить эту операцию API на пользовательском интерфейсе swagger. Что мне делать?

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

@EnableSwagger2
@Configuration
public class SwaggerConfiguration {
    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("all").select()
            .apis(RequestHandlerSelectors.basePackage("com.demo.userservice.api.controller"))
            .paths(regex("/api.*"))
            .build()
            .apiInfo(metaInfo());
}



private ApiInfo metaInfo() {

    ApiInfo apiInfo = new ApiInfo(
            "Spring Boot Swagger USERSERVICE API",
            "Spring Boot Swagger USERSERVICE API",
            "1.0",
            "Terms of Service",
            new Contact("userservice", "",
                    ""),
            "Apache License Version 2.0",
            "https://www.apache.org/licesen.html", new ArrayList<VendorExtension>()
    );

    return apiInfo;
}


}

1 Ответ

1 голос
/ 03 мая 2020

Одно решение открыто для всей конечной точки, чтобы показать oauth/token конечную точку таким образом

.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build().pathMapping("/")

или

Если вы хотите показать только желаемый путь, например /api/.*, вы можете изменить конечная точка oauth, использующая это

@Configuration
@EnableAuthorizationServer
public class EndPointModificationConfig extends AuthorizationServerConfigurerAdapter {    

        @Override
        public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
            endpoints
                .pathMapping("/oauth/token", "/api/oauth/token");
        }
}

И используйте это для получения всех API

.apis(RequestHandlerSelectors.any())
...