feat: 升级SpringBoot3
This commit is contained in:
@@ -1,82 +1,54 @@
|
||||
package com.youlai.system.config;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.info.Info;
|
||||
import io.swagger.v3.oas.models.info.License;
|
||||
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||
import springfox.documentation.builders.ApiInfoBuilder;
|
||||
import springfox.documentation.builders.PathSelectors;
|
||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||
import springfox.documentation.service.*;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Configuration
|
||||
@EnableSwagger2
|
||||
public class SwaggerConfig {
|
||||
|
||||
@Bean
|
||||
public Docket createRestApi() {
|
||||
return new Docket(DocumentationType.OAS_30)
|
||||
.apiInfo(apiInfo())
|
||||
.groupName("权限服务")
|
||||
//是否开启 (true 开启 false隐藏。生产环境建议隐藏)
|
||||
//.enable(false)
|
||||
.select()
|
||||
//扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api
|
||||
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
|
||||
//指定路径处理PathSelectors.any()代表所有的路径
|
||||
.paths(PathSelectors.any())
|
||||
.build().securityContexts(CollectionUtil.newArrayList(securityContext()))
|
||||
.securitySchemes(CollectionUtil.newArrayList(apiKey()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 配置基本信息
|
||||
* 根据@Tag 上的排序,写入x-order
|
||||
*
|
||||
* @return
|
||||
* @return the global open api customizer
|
||||
*/
|
||||
@Bean
|
||||
public ApiInfo apiInfo() {
|
||||
return new ApiInfoBuilder()
|
||||
//设置文档标题(API名称)
|
||||
.title("SpringBoot单体应用开发文档")
|
||||
//文档描述
|
||||
.description("快速开发文档-接口说明")
|
||||
//版本号
|
||||
.version("1.0.0")
|
||||
//联系人
|
||||
.contact(new Contact("", "http://localhost", ""))
|
||||
.build();
|
||||
public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
|
||||
return openApi -> {
|
||||
if (openApi.getTags() != null) {
|
||||
openApi.getTags().forEach(tag -> {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("x-order", RandomUtil.randomInt(0, 100));
|
||||
tag.setExtensions(map);
|
||||
});
|
||||
}
|
||||
if (openApi.getPaths() != null) {
|
||||
openApi.addExtension("x-test123", "333");
|
||||
openApi.getPaths().addExtension("x-abb", RandomUtil.randomInt(1, 100));
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
private List<SecurityScheme> securitySchemes() {
|
||||
List<SecurityScheme> apiKeyList= new ArrayList<>();
|
||||
@Bean
|
||||
public OpenAPI customOpenAPI() {
|
||||
return new OpenAPI()
|
||||
.info(new Info()
|
||||
.title("XXX用户系统API")
|
||||
.version("1.0")
|
||||
|
||||
apiKeyList.add(HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("Authorization").build());
|
||||
return apiKeyList;
|
||||
.description("Knife4j集成springdoc-openapi示例")
|
||||
.termsOfService("http://doc.xiaominfo.com")
|
||||
.license(new License().name("Apache 2.0")
|
||||
.url("http://doc.xiaominfo.com")));
|
||||
}
|
||||
|
||||
private ApiKey apiKey() {
|
||||
return new ApiKey("Authorization", "Authorization", "header");
|
||||
}
|
||||
|
||||
List<SecurityReference> defaultAuth() {
|
||||
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
|
||||
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
|
||||
authorizationScopes[0] = authorizationScope;
|
||||
return CollectionUtil.newArrayList(new SecurityReference("Authorization", authorizationScopes));
|
||||
}
|
||||
|
||||
private SecurityContext securityContext() {
|
||||
return SecurityContext.builder()
|
||||
.securityReferences(defaultAuth())
|
||||
//.forPaths(PathSelectors.regex(".*?208.*$"))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user