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

相关文章
相关标签/搜索