接口文档调整,为免登录接口排除token校验请求头

dev
EightMonth 3 months ago
parent 299f63c6e9
commit c18fb68e81

@ -9,6 +9,7 @@ import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.security.SecurityScheme;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.CommonConstant;
import org.springdoc.core.GroupedOpenApi; import org.springdoc.core.GroupedOpenApi;
import org.springdoc.core.customizers.GlobalOpenApiCustomizer; import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
@ -16,11 +17,30 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
/** /**
* @author eightmonth * @author eightmonth
*/ */
@Slf4j
@Configuration @Configuration
public class Swagger3Config implements WebMvcConfigurer { public class Swagger3Config implements WebMvcConfigurer {
// 定义不需要注入安全要求的路径集合
Set<String> excludedPaths = new HashSet<>(Arrays.asList(
"/sys/randomImage/{key}",
"/sys/login",
"/sys/phoneLogin",
"/sys/mLogin",
"/sys/sms",
"/sys/cas/client/validateLogin",
"/test/jeecgDemo/demo3",
"/sys/thirdLogin/**",
"/sys/user/register"
));
/** /**
* *
* swagger-ui.htmlswagger * swagger-ui.htmlswagger
@ -52,12 +72,21 @@ public class Swagger3Config implements WebMvcConfigurer {
return openApi -> { return openApi -> {
// 全局添加鉴权参数 // 全局添加鉴权参数
if (openApi.getPaths() != null) { if (openApi.getPaths() != null) {
openApi.getPaths().forEach((s, pathItem) -> { openApi.getPaths().forEach((path, pathItem) -> {
log.info("path: {}", path);
// 检查当前路径是否在排除列表中
boolean isExcluded = excludedPaths.stream().anyMatch(excludedPath ->
excludedPath.equals(path) ||
(excludedPath.endsWith("**") && path.startsWith(excludedPath.substring(0, excludedPath.length() - 2)))
);
if (!isExcluded) {
// 接口添加鉴权参数 // 接口添加鉴权参数
pathItem.readOperations() pathItem.readOperations()
.forEach(operation -> .forEach(operation ->
operation.addSecurityItem(new SecurityRequirement().addList(CommonConstant.X_ACCESS_TOKEN)) operation.addSecurityItem(new SecurityRequirement().addList(CommonConstant.X_ACCESS_TOKEN))
); );
}
}); });
} }
}; };
@ -68,7 +97,7 @@ public class Swagger3Config implements WebMvcConfigurer {
return new OpenAPI() return new OpenAPI()
.info(new Info() .info(new Info()
.title("JeecgBoot 后台服务API接口文档") .title("JeecgBoot 后台服务API接口文档")
.version("1.0") .version("3.7.4")
.contact(new Contact().name("北京国炬信息技术有限公司").url("www.jeccg.com").email("jeecgos@163.com")) .contact(new Contact().name("北京国炬信息技术有限公司").url("www.jeccg.com").email("jeecgos@163.com"))
.description( "后台API接口") .description( "后台API接口")
.termsOfService("NO terms of service") .termsOfService("NO terms of service")

Loading…
Cancel
Save