Swagger+Zuul實現認證及服務API整合

前言:上一篇博文記錄了Swagger的基本使用(地址),有兩個問題須要處理:html

1). 訪問swagger地址須要加上認證
2). 微服務架構下整合全部服務的API地址

在SpringCloud微服務架構下,咱們通常都會使用zuul作網關,用來作請求轉發和鑑權等操做,因此,咱們能夠將swagger整合到zuul裏面,使用zuul的認證來實現swagger的訪問管理api

  1. 服務swagger配置-參考上一篇博文架構

  2. zuul引入swagger配置微服務

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("zuul服務API")
                .description("zuul服務API說明")
                .termsOfServiceUrl("https://server.zuul.com/")
                .version("1.0")
                .build();
    }

}
  1. zuul網關配置-以攔截user路徑爲例
security.user.name = zuul
security.user.password = zuul
security.basic.path = /swagger-ui.html
security.basic.enabled = true

zuul.routes.user.path = /api/user/**
zuul.routes.user.stripPrefix = false
zuul.routes.user.serviceId = user
zuul.routes.userSwagger.path = /user/**
zuul.routes.userSwagger.stripPrefix = true
zuul.routes.userSwagger.serviceId = user
  1. 效果

訪問zuul的swagger地址輸入用戶名和密碼,效果以下: ui

相關文章
相關標籤/搜索