From ac2f526a1c0cf3a7054d8fe0dfe62bdc3feb3afc Mon Sep 17 00:00:00 2001 From: yukaidi Date: Fri, 29 May 2026 11:36:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20clientLinks/clientLink=20=E8=A1=A5?= =?UTF-8?q?=E5=85=A8=E5=8F=82=E6=95=B0=E6=B3=A8=E5=85=A5=EF=BC=8C=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=20=5FrequestOrigin=20=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - clientLinks 无 auth 时调用 URLParamUtil.addParam() 注入代理/认证配置 - clientLink 补设 _requestOrigin 并调用 addParam() - getFileList/getFileDownUrl 补设 _requestOrigin 保持一致性 - getDownLink 回退地址补上端口号 --- .../java/cn/qaiu/lz/web/controller/ParserApi.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/web-service/src/main/java/cn/qaiu/lz/web/controller/ParserApi.java b/web-service/src/main/java/cn/qaiu/lz/web/controller/ParserApi.java index 00ff618..5c6f493 100644 --- a/web-service/src/main/java/cn/qaiu/lz/web/controller/ParserApi.java +++ b/web-service/src/main/java/cn/qaiu/lz/web/controller/ParserApi.java @@ -110,7 +110,7 @@ public class ParserApi { private static String getDownLink(ParserCreate create, boolean isJson, HttpServerRequest request) { String linkPrefix = getLinkPrefix(request); if (StringUtils.isBlank(linkPrefix)) { - linkPrefix = "http://127.0.0.1"; + linkPrefix = "http://127.0.0.1:" + SharedDataUtil.getJsonConfig("server").getInteger("port", 6400); } // 下载短链前缀 /d return linkPrefix + (isJson ? "/json/" : "/d/") + create.genPathSuffix(); @@ -144,6 +144,7 @@ public class ParserApi { ParserCreate parserCreate = ParserCreate.fromShareUrl(url).setShareLinkInfoPwd(pwd); String linkPrefix = getLinkPrefix(request); parserCreate.getShareLinkInfo().getOtherParam().put("domainName", linkPrefix); + parserCreate.getShareLinkInfo().getOtherParam().put("_requestOrigin", linkPrefix); if (StringUtils.isNotBlank(dirId)) { parserCreate.getShareLinkInfo().getOtherParam().put("dirId", dirId); } @@ -172,6 +173,7 @@ public class ParserApi { // domainName String linkPrefix = getLinkPrefix(request); shareLinkInfo.getOtherParam().put("domainName", linkPrefix); + shareLinkInfo.getOtherParam().put("_requestOrigin", linkPrefix); return parserCreate.createTool().parseById(); } @@ -296,7 +298,8 @@ public class ParserApi { String shareUrl = URLParamUtil.parserParams(request); ParserCreate parserCreate = ParserCreate.fromShareUrl(shareUrl).setShareLinkInfoPwd(pwd); ShareLinkInfo shareLinkInfo = parserCreate.getShareLinkInfo(); - + shareLinkInfo.getOtherParam().put("_requestOrigin", getLinkPrefix(request)); + // 处理认证参数 if (auth != null && !auth.isEmpty()) { AuthParam authParam = AuthParamCodec.decode(auth); @@ -312,6 +315,8 @@ public class ParserApi { authParam.getExt5()); log.debug("客户端链接API: 已解码认证参数 authType={}", authParam.getAuthType()); } + } else { + URLParamUtil.addParam(parserCreate); } // 使用默认方法解析并生成客户端链接 @@ -353,7 +358,9 @@ public class ParserApi { try { String shareUrl = URLParamUtil.parserParams(request); ParserCreate parserCreate = ParserCreate.fromShareUrl(shareUrl).setShareLinkInfoPwd(pwd); - + parserCreate.getShareLinkInfo().getOtherParam().put("_requestOrigin", getLinkPrefix(request)); + URLParamUtil.addParam(parserCreate); + // 使用默认方法解析并生成客户端链接 parserCreate.createTool().parseWithClientLinks() .onSuccess(clientLinks -> {