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