From cfa9871b5c60593ecbe1886251839686e7cee50b Mon Sep 17 00:00:00 2001 From: macro Date: Sat, 13 Apr 2019 16:14:18 +0800 Subject: [PATCH] =?UTF-8?q?swagger=E6=B7=BB=E5=8A=A0=E7=99=BB=E9=99=86?= =?UTF-8?q?=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/macro/mall/config/Swagger2Config.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java b/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java index 33250dd..3e0041b 100644 --- a/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java +++ b/mall-admin/src/main/java/com/macro/mall/config/Swagger2Config.java @@ -6,10 +6,17 @@ import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.ApiKey; +import springfox.documentation.service.AuthorizationScope; +import springfox.documentation.service.SecurityReference; 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; + /** * Swagger2API文档的配置 * Created by macro on 2018/4/26. @@ -24,7 +31,9 @@ public class Swagger2Config { .select() .apis(RequestHandlerSelectors.basePackage("com.macro.mall.controller")) .paths(PathSelectors.any()) - .build(); + .build() + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()); } private ApiInfo apiInfo() { @@ -35,4 +44,37 @@ public class Swagger2Config { .version("1.0") .build(); } + + private List securitySchemes() { + //设置请求头信息 + List result = new ArrayList<>(); + ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); + result.add(apiKey); + return result; + } + + private List securityContexts() { + //设置需要登录认证的路径 + List result = new ArrayList<>(); + result.add(getContextByPath("/brand/.*")); + result.add(getContextByPath("/product/.*")); + result.add(getContextByPath("/productCategory/.*")); + return result; + } + + private SecurityContext getContextByPath(String pathRegex){ + return SecurityContext.builder() + .securityReferences(defaultAuth()) + .forPaths(PathSelectors.regex(pathRegex)) + .build(); + } + + List defaultAuth() { + List result = new ArrayList<>(); + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + result.add(new SecurityReference("Authorization", authorizationScopes)); + return result; + } }