前言:上一篇博文记录了Swagger的基本使用(地址),有两个问题需要处理:
1). 访问swagger地址需要加上认证
2). 微服务架构下整合所有服务的API地址
在SpringCloud微服务架构下,我们一般都会使用zuul做网关,用来做请求转发和鉴权等操作,所以,我们可以将swagger整合到zuul里面,使用zuul的认证来实现swagger的访问管理
-
服务swagger配置-参考上一篇博文
-
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();
}
}
- 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
- 效果
访问zuul的swagger地址输入用户名和密码,效果如下: