Merge branch 'dev' into 'test'

feat(iwork): 添加工作流创建操作中operatorUserId字段验证

See merge request jygk/dsc!27
This commit is contained in:
朝锦 杨
2026-01-29 07:39:54 +00:00

View File

@@ -270,18 +270,32 @@ public class FileController {
} }
private String buildPublicBaseUrl(HttpServletRequest request) { private String buildPublicBaseUrl(HttpServletRequest request) {
if (previewBaseUrl != null && !previewBaseUrl.isBlank()) { // 1. 优先使用配置(必须是合法 http(s)
return previewBaseUrl.endsWith("/") if (previewBaseUrl != null) {
? previewBaseUrl.substring(0, previewBaseUrl.length() - 1) String v = previewBaseUrl.trim();
: previewBaseUrl; if (!v.isEmpty() && (v.startsWith("http://") || v.startsWith("https://"))) {
return v.endsWith("/") ? v.substring(0, v.length() - 1) : v;
}
} }
// 兜底:从请求推断
String scheme = request.getHeader("X-Forwarded-Proto");
if (scheme == null) scheme = request.getScheme();
// 2. 从请求头推断 scheme注意多级代理会是 "http,http"
String scheme = request.getHeader("X-Forwarded-Proto");
if (scheme == null || scheme.isBlank()) {
scheme = request.getScheme();
} else {
scheme = scheme.split(",")[0].trim();
}
// 3. 从请求头推断 host同样可能是多值
String host = request.getHeader("X-Forwarded-Host"); String host = request.getHeader("X-Forwarded-Host");
if (host == null) host = request.getHeader("Host"); if (host == null || host.isBlank()) {
if (host == null) host = request.getServerName() + ":" + request.getServerPort(); host = request.getHeader("Host");
}
if (host == null || host.isBlank()) {
host = request.getServerName() + ":" + request.getServerPort();
} else {
host = host.split(",")[0].trim();
}
return scheme + "://" + host; return scheme + "://" + host;
} }