fix: clientLinks/clientLink 补全参数注入,统一 _requestOrigin 设置

- clientLinks 无 auth 时调用 URLParamUtil.addParam() 注入代理/认证配置
- clientLink 补设 _requestOrigin 并调用 addParam()
- getFileList/getFileDownUrl 补设 _requestOrigin 保持一致性
- getDownLink 回退地址补上端口号
This commit is contained in:
yukaidi
2026-05-29 11:36:20 +08:00
parent cfb624e9e0
commit ac2f526a1c

View File

@@ -110,7 +110,7 @@ public class ParserApi {
private static String getDownLink(ParserCreate create, boolean isJson, HttpServerRequest request) { private static String getDownLink(ParserCreate create, boolean isJson, HttpServerRequest request) {
String linkPrefix = getLinkPrefix(request); String linkPrefix = getLinkPrefix(request);
if (StringUtils.isBlank(linkPrefix)) { if (StringUtils.isBlank(linkPrefix)) {
linkPrefix = "http://127.0.0.1"; linkPrefix = "http://127.0.0.1:" + SharedDataUtil.getJsonConfig("server").getInteger("port", 6400);
} }
// 下载短链前缀 /d // 下载短链前缀 /d
return linkPrefix + (isJson ? "/json/" : "/d/") + create.genPathSuffix(); return linkPrefix + (isJson ? "/json/" : "/d/") + create.genPathSuffix();
@@ -144,6 +144,7 @@ public class ParserApi {
ParserCreate parserCreate = ParserCreate.fromShareUrl(url).setShareLinkInfoPwd(pwd); ParserCreate parserCreate = ParserCreate.fromShareUrl(url).setShareLinkInfoPwd(pwd);
String linkPrefix = getLinkPrefix(request); String linkPrefix = getLinkPrefix(request);
parserCreate.getShareLinkInfo().getOtherParam().put("domainName", linkPrefix); parserCreate.getShareLinkInfo().getOtherParam().put("domainName", linkPrefix);
parserCreate.getShareLinkInfo().getOtherParam().put("_requestOrigin", linkPrefix);
if (StringUtils.isNotBlank(dirId)) { if (StringUtils.isNotBlank(dirId)) {
parserCreate.getShareLinkInfo().getOtherParam().put("dirId", dirId); parserCreate.getShareLinkInfo().getOtherParam().put("dirId", dirId);
} }
@@ -172,6 +173,7 @@ public class ParserApi {
// domainName // domainName
String linkPrefix = getLinkPrefix(request); String linkPrefix = getLinkPrefix(request);
shareLinkInfo.getOtherParam().put("domainName", linkPrefix); shareLinkInfo.getOtherParam().put("domainName", linkPrefix);
shareLinkInfo.getOtherParam().put("_requestOrigin", linkPrefix);
return parserCreate.createTool().parseById(); return parserCreate.createTool().parseById();
} }
@@ -296,7 +298,8 @@ public class ParserApi {
String shareUrl = URLParamUtil.parserParams(request); String shareUrl = URLParamUtil.parserParams(request);
ParserCreate parserCreate = ParserCreate.fromShareUrl(shareUrl).setShareLinkInfoPwd(pwd); ParserCreate parserCreate = ParserCreate.fromShareUrl(shareUrl).setShareLinkInfoPwd(pwd);
ShareLinkInfo shareLinkInfo = parserCreate.getShareLinkInfo(); ShareLinkInfo shareLinkInfo = parserCreate.getShareLinkInfo();
shareLinkInfo.getOtherParam().put("_requestOrigin", getLinkPrefix(request));
// 处理认证参数 // 处理认证参数
if (auth != null && !auth.isEmpty()) { if (auth != null && !auth.isEmpty()) {
AuthParam authParam = AuthParamCodec.decode(auth); AuthParam authParam = AuthParamCodec.decode(auth);
@@ -312,6 +315,8 @@ public class ParserApi {
authParam.getExt5()); authParam.getExt5());
log.debug("客户端链接API: 已解码认证参数 authType={}", authParam.getAuthType()); log.debug("客户端链接API: 已解码认证参数 authType={}", authParam.getAuthType());
} }
} else {
URLParamUtil.addParam(parserCreate);
} }
// 使用默认方法解析并生成客户端链接 // 使用默认方法解析并生成客户端链接
@@ -353,7 +358,9 @@ public class ParserApi {
try { try {
String shareUrl = URLParamUtil.parserParams(request); String shareUrl = URLParamUtil.parserParams(request);
ParserCreate parserCreate = ParserCreate.fromShareUrl(shareUrl).setShareLinkInfoPwd(pwd); ParserCreate parserCreate = ParserCreate.fromShareUrl(shareUrl).setShareLinkInfoPwd(pwd);
parserCreate.getShareLinkInfo().getOtherParam().put("_requestOrigin", getLinkPrefix(request));
URLParamUtil.addParam(parserCreate);
// 使用默认方法解析并生成客户端链接 // 使用默认方法解析并生成客户端链接
parserCreate.createTool().parseWithClientLinks() parserCreate.createTool().parseWithClientLinks()
.onSuccess(clientLinks -> { .onSuccess(clientLinks -> {