|
@@ -0,0 +1,78 @@
|
|
|
+package com.redxun.config;
|
|
|
+
|
|
|
+import com.google.common.base.Predicates;
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import springfox.documentation.builders.ApiInfoBuilder;
|
|
|
+import springfox.documentation.builders.PathSelectors;
|
|
|
+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.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 文件名: Swagger2Config
|
|
|
+ * 作者: Zizg
|
|
|
+ * 时间: 2022/01/06
|
|
|
+ * 描述: 接口文档配置
|
|
|
+ * 修改人:
|
|
|
+ * 修改时间:
|
|
|
+ * 修改内容:
|
|
|
+ */
|
|
|
+@Configuration
|
|
|
+@EnableSwagger2
|
|
|
+public class Swagger2Config {
|
|
|
+
|
|
|
+ @Bean
|
|
|
+ public Docket adminApiConfig(){
|
|
|
+
|
|
|
+ return new Docket(DocumentationType.SWAGGER_2)
|
|
|
+ .groupName("知识管理系统")
|
|
|
+ .apiInfo(adminApiInfo())
|
|
|
+ .select()
|
|
|
+ //只显示admin路径下的页面
|
|
|
+ .paths(Predicates.and(PathSelectors.regex("/api-knowledge/.*")))
|
|
|
+ .build()
|
|
|
+ .securityContexts(Arrays.asList(securityContexts()))
|
|
|
+ .securitySchemes(unifiedAuth());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private ApiInfo adminApiInfo(){
|
|
|
+
|
|
|
+ return new ApiInfoBuilder()
|
|
|
+ .title("知识管理系统-API文档")
|
|
|
+ .description("本文档描述了知识管理系统接口定义")
|
|
|
+ .version("1.0")
|
|
|
+ .contact(new Contact("Zizg", "", ""))
|
|
|
+ .build();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加配置全局token
|
|
|
+ private static List<ApiKey> unifiedAuth() {
|
|
|
+ List<ApiKey> arrayList = new ArrayList<>();
|
|
|
+ arrayList.add(new ApiKey("token", "token", "header"));
|
|
|
+ return arrayList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SecurityContext securityContexts() {
|
|
|
+ return SecurityContext.builder()
|
|
|
+ .securityReferences(defaultAuth())
|
|
|
+ .forPaths(PathSelectors.any())
|
|
|
+ .build();
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<SecurityReference> defaultAuth() {
|
|
|
+ AuthorizationScope authorizationScope = new AuthorizationScope("global", "全局token");
|
|
|
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
|
|
|
+ authorizationScopes[0] = authorizationScope;
|
|
|
+ return Arrays.asList(new SecurityReference("token", authorizationScopes));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|