|
@@ -0,0 +1,90 @@
|
|
|
+package cn.com.taiji.tile.config;
|
|
|
+
|
|
|
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import io.swagger.models.auth.In;
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import springfox.documentation.builders.PathSelectors;
|
|
|
+import springfox.documentation.builders.RequestHandlerSelectors;
|
|
|
+import springfox.documentation.oas.annotations.EnableOpenApi;
|
|
|
+import springfox.documentation.service.ApiKey;
|
|
|
+import springfox.documentation.service.AuthorizationScope;
|
|
|
+import springfox.documentation.service.SecurityReference;
|
|
|
+import springfox.documentation.service.SecurityScheme;
|
|
|
+import springfox.documentation.spi.DocumentationType;
|
|
|
+import springfox.documentation.spi.service.contexts.SecurityContext;
|
|
|
+import springfox.documentation.spring.web.plugins.Docket;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+ * Swagger2的接口配置
|
|
|
+ *
|
|
|
+ * @author seat
|
|
|
+ */
|
|
|
+
|
|
|
+@EnableOpenApi
|
|
|
+@EnableKnife4j
|
|
|
+@Configuration
|
|
|
+public class SwaggerConfig
|
|
|
+{
|
|
|
+
|
|
|
+ * 创建API
|
|
|
+ */
|
|
|
+ @Bean
|
|
|
+ public Docket createRestApi()
|
|
|
+ {
|
|
|
+ return new Docket(DocumentationType.OAS_30)
|
|
|
+
|
|
|
+ .enable(true)
|
|
|
+
|
|
|
+ .select()
|
|
|
+
|
|
|
+ .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
|
|
+ .paths(PathSelectors.any())
|
|
|
+ .build()
|
|
|
+
|
|
|
+ .securitySchemes(securitySchemes())
|
|
|
+ .securityContexts(securityContexts());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 安全模式,这里指定token通过Authorization头请求头传递
|
|
|
+ */
|
|
|
+ private List<SecurityScheme> securitySchemes()
|
|
|
+ {
|
|
|
+ List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
|
|
|
+ apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
|
|
|
+ return apiKeyList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 安全上下文
|
|
|
+ */
|
|
|
+ private List<SecurityContext> securityContexts()
|
|
|
+ {
|
|
|
+ List<SecurityContext> securityContexts = new ArrayList<>();
|
|
|
+ securityContexts.add(
|
|
|
+ SecurityContext.builder()
|
|
|
+ .securityReferences(defaultAuth())
|
|
|
+ .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
|
|
|
+ .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;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|