From 3b433089e33b03bd335c377bc6c390c5f23a58b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 9 Dec 2024 11:30:42 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=87=E6=A1=A3=E6=9C=8D=E5=8A=A1=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E4=BB=8Egateway=E8=BD=AC=E5=8F=91=E7=9A=84=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=A4=B4=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doc/config/SpringDocAutoConfiguration.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocAutoConfiguration.java b/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocAutoConfiguration.java index a6adaec6..88e9932a 100644 --- a/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-doc/src/main/java/org/dromara/common/doc/config/SpringDocAutoConfiguration.java @@ -4,7 +4,9 @@ import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Paths; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; +import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.doc.config.properties.SpringDocProperties; import org.dromara.common.doc.handler.OpenApiHandler; @@ -93,23 +95,17 @@ public class SpringDocAutoConfiguration { */ @Bean public OpenApiCustomizer openApiCustomizer() { - // 拼接服务路径 - String appPath = "/" + StringUtils.substring(appName, appName.indexOf("-") + 1); - String contextPath = serverProperties.getServlet().getContextPath(); - String finalContextPath; - if (StringUtils.isBlank(contextPath) || "/".equals(contextPath)) { - finalContextPath = appPath; - } else { - finalContextPath = appPath + contextPath; - } // 对所有路径增加前置上下文路径 return openApi -> { + HttpServletRequest request = ServletUtils.getRequest(); + // 从请求头获取gateway转发的服务前缀 + String prefix = StringUtils.blankToDefault(request.getHeader("X-Forwarded-Prefix"), ""); Paths oldPaths = openApi.getPaths(); if (oldPaths instanceof PlusPaths) { return; } PlusPaths newPaths = new PlusPaths(); - oldPaths.forEach((k, v) -> newPaths.addPathItem(finalContextPath + k, v)); + oldPaths.forEach((k, v) -> newPaths.addPathItem(prefix + k, v)); openApi.setPaths(newPaths); }; }