From 106036d9890d8c058e21aaadc77b40b808463c4c Mon Sep 17 00:00:00 2001 From: kl Date: Mon, 1 Aug 2022 14:09:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20baseURL=20=E7=9A=84?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91=20(#376)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/keking/web/filter/BaseUrlFilter.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java b/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java index 1df0f5fe..96828fd9 100644 --- a/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java +++ b/server/src/main/java/cn/keking/web/filter/BaseUrlFilter.java @@ -36,24 +36,26 @@ public class BaseUrlFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { String baseUrl; - String baseUrlTmp = ConfigConstants.getBaseUrl(); + String configBaseUrl = ConfigConstants.getBaseUrl(); final HttpServletRequest servletRequest = (HttpServletRequest) request; - // 支持通过 http header 中 X-Base-Url 来动态设置 baseUrl 以支持多个域名/项目的共享使用 + //1、支持通过 http header 中 X-Base-Url 来动态设置 baseUrl 以支持多个域名/项目的共享使用 final String urlInHeader = servletRequest.getHeader("X-Base-Url"); if (StringUtils.isNotEmpty(urlInHeader)) { baseUrl = urlInHeader; - } else if (baseUrlTmp != null && !ConfigConstants.DEFAULT_BASE_URL.equalsIgnoreCase(baseUrlTmp)) { - // 如果配置文件中配置了 baseUrl 且不为 default 则以配置文件为准 - if (!baseUrlTmp.endsWith("/")) { - baseUrlTmp = baseUrlTmp.concat("/"); - } - baseUrl = baseUrlTmp; + } else if (configBaseUrl != null && !ConfigConstants.DEFAULT_BASE_URL.equalsIgnoreCase(configBaseUrl)) { + //2、如果配置文件中配置了 baseUrl 且不为 default 则以配置文件为准 + baseUrl = configBaseUrl; } else { - // 动态拼接 baseUrl + //3、默认动态拼接 baseUrl baseUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + servletRequest.getContextPath() + "/"; } + + if (!baseUrl.endsWith("/")) { + baseUrl = baseUrl.concat("/"); + } + BASE_URL = baseUrl; request.setAttribute("baseUrl", baseUrl); filterChain.doFilter(request, response);