From 25b114aae7e9efb2bc54cca8a5875237bc3da694 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期一, 18 五月 2020 14:27:15 +0800 Subject: [PATCH] 支持是否需要设置token属性,自定义返回码消息。 --- ruoyi/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java | 64 ++++++++++++++++++++++++++++++- 1 files changed, 61 insertions(+), 3 deletions(-) diff --git a/ruoyi/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java index a2da4e8..9692685 100644 --- a/ruoyi/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java +++ b/ruoyi/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java @@ -1,6 +1,9 @@ package com.ruoyi.framework.config; +import java.util.ArrayList; +import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import io.swagger.annotations.ApiOperation; @@ -8,8 +11,12 @@ 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.Contact; +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; @@ -26,6 +33,14 @@ @Autowired private RuoYiConfig ruoyiConfig; + /** 鏄惁寮�鍚痵wagger */ + @Value("${swagger.enabled}") + private boolean enabled; + + /** 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑 */ + @Value("${swagger.pathMapping}") + private String pathMapping; + /** * 鍒涘缓API */ @@ -33,6 +48,8 @@ public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) + // 鏄惁鍚敤Swagger + .enable(enabled) // 鐢ㄦ潵鍒涘缓璇PI鐨勫熀鏈俊鎭紝灞曠ず鍦ㄦ枃妗g殑椤甸潰涓紙鑷畾涔夊睍绀虹殑淇℃伅锛� .apiInfo(apiInfo()) // 璁剧疆鍝簺鎺ュ彛鏆撮湶缁橲wagger灞曠ず @@ -40,10 +57,51 @@ // 鎵弿鎵�鏈夋湁娉ㄨВ鐨刟pi锛岀敤杩欑鏂瑰紡鏇寸伒娲� .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) // 鎵弿鎸囧畾鍖呬腑鐨剆wagger娉ㄨВ - //.apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger")) + // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger")) // 鎵弿鎵�鏈� .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) - .build(); + .build() + /* 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token */ + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()) + .pathMapping(pathMapping); + } + + /** + * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻�� + */ + private List<ApiKey> securitySchemes() + { + List<ApiKey> apiKeyList = new ArrayList<ApiKey>(); + apiKeyList.add(new ApiKey("Authorization", "Authorization", "header")); + return apiKeyList; + } + + /** + * 瀹夊叏涓婁笅鏂� + */ + private List<SecurityContext> securityContexts() + { + List<SecurityContext> securityContexts = new ArrayList<>(); + securityContexts.add( + SecurityContext.builder() + .securityReferences(defaultAuth()) + .forPaths(PathSelectors.regex("^(?!auth).*$")) + .build()); + return securityContexts; + } + + /** + * 榛樿鐨勫畨鍏ㄤ笂寮曠敤 + */ + private List<SecurityReference> defaultAuth() + { + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + List<SecurityReference> securityReferences = new ArrayList<>(); + securityReferences.add(new SecurityReference("Authorization", authorizationScopes)); + return securityReferences; } /** @@ -54,7 +112,7 @@ // 鐢ˋpiInfoBuilder杩涜瀹氬埗 return new ApiInfoBuilder() // 璁剧疆鏍囬 - .title("鏍囬锛氫綑蹇冪鐞嗙郴缁焈鎺ュ彛鏂囨。") + .title("鏍囬锛氳嫢渚濈鐞嗙郴缁焈鎺ュ彛鏂囨。") // 鎻忚堪 .description("鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...") // 浣滆�呬俊鎭� -- Gitblit v1.9.3