升级支持Spring Cloud 2023+Spring Boot 3.2+JDK 17
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package com.macro.mall.config;
|
||||
|
||||
import io.swagger.v3.oas.models.Components;
|
||||
import io.swagger.v3.oas.models.ExternalDocumentation;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.info.Info;
|
||||
import io.swagger.v3.oas.models.info.License;
|
||||
import io.swagger.v3.oas.models.security.SecurityRequirement;
|
||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
||||
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
* SpringDoc相关配置
|
||||
* Created by macro on 2024/3/5.
|
||||
*/
|
||||
@Configuration
|
||||
public class SpringDocConfig implements WebMvcConfigurer {
|
||||
|
||||
private static final String SECURITY_SCHEME_NAME = "Authorization";
|
||||
|
||||
@Bean
|
||||
public OpenAPI mallAdminOpenAPI() {
|
||||
return new OpenAPI()
|
||||
.info(new Info().title("mall后台系统")
|
||||
.description("mall后台相关接口文档")
|
||||
.version("v1.0.0")
|
||||
.license(new License().name("Apache 2.0")
|
||||
.url("https://github.com/macrozheng/mall-learning")))
|
||||
.externalDocs(new ExternalDocumentation()
|
||||
.description("SpringBoot实战电商项目mall(60K+Star)全套文档")
|
||||
.url("http://www.macrozheng.com"))
|
||||
.addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME))
|
||||
.components(new Components()
|
||||
.addSecuritySchemes(SECURITY_SCHEME_NAME,
|
||||
new SecurityScheme()
|
||||
.name(SECURITY_SCHEME_NAME)
|
||||
.type(SecurityScheme.Type.HTTP)
|
||||
.scheme("bearer")
|
||||
.bearerFormat("JWT")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addViewControllers(ViewControllerRegistry registry) {
|
||||
//配置访问`/swagger-ui/`路径时可以直接跳转到`/swagger-ui/index.html`
|
||||
registry.addViewController("/swagger-ui/").setViewName("redirect:/swagger-ui/index.html");
|
||||
}
|
||||
|
||||
@Bean
|
||||
public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
|
||||
//解决Knife4j配置认证后无法自动添加认证头的问题
|
||||
return openApi -> {
|
||||
//全局添加鉴权参数
|
||||
if (openApi.getPaths() != null) {
|
||||
openApi.getPaths().forEach((s, pathItem) -> {
|
||||
pathItem.readOperations().forEach(operation -> {
|
||||
operation.addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME));
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user