From 2f640b1038fa331954f78ed1f4317212cf5bb34d Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 07 六月 2024 16:56:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/config/SwaggerConfig.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/config/SwaggerConfig.java b/north-glass-erp/src/main/java/com/example/erp/config/SwaggerConfig.java
new file mode 100644
index 0000000..e4564e4
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/config/SwaggerConfig.java
@@ -0,0 +1,89 @@
+package com.example.erp.config;
+import com.google.common.collect.Lists;
+import io.swagger.annotations.ApiOperation;
+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.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.Collections;
+import java.util.List;
+
+import static springfox.documentation.builders.PathSelectors.regex;
+
+@Configuration
+@EnableSwagger2     //寮�鍚疭wagger2
+public class SwaggerConfig {
+
+    //閰嶇疆浜哠wagger鐨凞ocket鐨刡ean瀹炰緥
+    @Bean
+    public Docket docket(){
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .select()
+                //鍔犱簡ApiOperation娉ㄨВ鐨勭被锛屾墠鐢熸垚鎺ュ彛鏂囨。
+                .apis(RequestHandlerSelectors.basePackage("com.example.erp.controller"))
+                //鍖呬笅鐨勭被锛屾墠鐢熸垚鎺ュ彛鏂囨。
+                .paths(PathSelectors.any())
+                .build()
+                .securitySchemes(securitySchemes())
+                .securityContexts(securityContexts());
+
+    }
+
+
+    /**
+     * 閰嶇疆璁よ瘉妯″紡
+     * @return
+     */
+    private List<ApiKey> securitySchemes() {
+        List<ApiKey> arrayList = new ArrayList<>();
+        arrayList.add( new ApiKey("token", "token", "header"));
+        return arrayList;
+    }
+
+    /**
+     * 閰嶇疆璁よ瘉涓婁笅鏂�
+     */
+    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<>();
+        //楠岃瘉澧炲姞锛堟湁璁稿鏁欑▼璇存槑涓繖涓湴鏂规槸Authorization,瀵艰嚧涓嶈兘甯﹀叆鍏ㄥ眬token锛屽洜涓簊ecuritySchemes()鏂规硶涓環eader鍐欏叆token锛屾墍浠ヨ繖涓湴鏂规垜鏀逛负token灏卞彲浠ヤ簡锛�
+        securityReferences.add(new SecurityReference("token", authorizationScopes));
+        return securityReferences;
+    }
+    //閰嶇疆Swagger淇℃伅 = apiInfo
+    private ApiInfo apiInfo(){
+        //浣滆�呬俊鎭�
+        Contact contact = new Contact("閮瓂j", "", "");
+        return new ApiInfo(
+                "NorthGlass-ERP 鎺ュ彛鏂囨。",       //title
+                "閮瓂j",        //description
+                "1.0",                          //version
+                "urn:tos",
+                contact,
+                "Apache 2.0",
+                "http://www.apache.org/licenses/LICENSE-2.0",
+                new ArrayList());
+    }
+}

--
Gitblit v1.8.0