From 73474c066e246243a8f4d96ba4eac399cfd72edd Mon Sep 17 00:00:00 2001 From: xiongxiaoyang Date: Tue, 2 Jun 2020 19:40:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E7=94=A8=E6=88=B7=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E5=92=8C=E4=BD=9C=E5=AE=B6=E4=B8=AD=E5=BF=83=E4=B8=AD=E6=89=80?= =?UTF-8?q?=E6=9C=89=E6=8E=A5=E5=8F=A3=EF=BC=88=E4=B8=8D=E5=90=AB=E7=99=BB?= =?UTF-8?q?=E9=99=86=E6=B3=A8=E5=86=8C=EF=BC=89=E6=B7=BB=E5=8A=A0=E8=AE=A4?= =?UTF-8?q?=E8=AF=81header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../novel/common/config/Swagger2Config.java | 41 +++++++++++++++++-- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/novel-common/src/main/java/com/java2nb/novel/common/config/Swagger2Config.java b/novel-common/src/main/java/com/java2nb/novel/common/config/Swagger2Config.java index 53b8bef..cb78bf3 100644 --- a/novel-common/src/main/java/com/java2nb/novel/common/config/Swagger2Config.java +++ b/novel-common/src/main/java/com/java2nb/novel/common/config/Swagger2Config.java @@ -3,15 +3,24 @@ package com.java2nb.novel.common.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.service.ApiInfo; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.*; import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; +import java.util.ArrayList; +import java.util.List; + +import static com.google.common.collect.Lists.newArrayList; + /** * Swagger2API文档的配置 + * * @author xiongxiaoyang * @version 1.0 * @since 2020/5/27 @@ -20,7 +29,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableSwagger2 public class Swagger2Config { @Bean - public Docket createRestApi(){ + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() @@ -31,7 +41,9 @@ public class Swagger2Config { //为有@ApiOperation注解的方法生成API文档 //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) - .build(); + .build() + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()); } private ApiInfo apiInfo() { @@ -42,4 +54,27 @@ public class Swagger2Config { .version("1.0.0") .build(); } + + private List securitySchemes() { + return newArrayList( + new ApiKey("Authorization", "Authorization", "header")); + } + + private List securityContexts() { + return newArrayList( + SecurityContext.builder() + .securityReferences(defaultAuth()) + //用户微服务和作家微服务(不包括登陆/注册)的接口需要认证 + .forPaths(PathSelectors.regex("^/(user|author)/(?!(login|register)).*$")) + .build() + ); + } + + List defaultAuth() { + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + return newArrayList( + new SecurityReference("Authorization", authorizationScopes)); + } }