feat: 将工作流分享改为独立页面

- 新增无后台布局的工作流分享与失效路由

- 同步分享地址并保留旧链接兼容

- 补充前后端分享链路测试
This commit is contained in:
2026-07-24 18:51:53 +08:00
parent 526e16163b
commit 63eb55e24c
11 changed files with 212 additions and 25 deletions

View File

@@ -109,24 +109,24 @@ public class WorkflowShareController {
* 根据管理端来源构建工作流分享基础 URL。
*
* @param request HTTP 请求
* @return 工作流设计页 URL
* @return 工作流独立分享页 URL
*/
private String buildShareBaseUrl(HttpServletRequest request) {
String refererBaseUrl = extractFrontendBaseUrl(RequestUtil.getReferer(request));
if (refererBaseUrl != null) {
return refererBaseUrl + "/ai/workflow/design";
return refererBaseUrl + "/share/workflow";
}
String forwardedOrigin = buildForwardedOrigin(request);
if (forwardedOrigin != null) {
return forwardedOrigin
+ normalizeBasePath(firstHeaderValue(request.getHeader("X-Forwarded-Prefix")))
+ "/ai/workflow/design";
+ "/share/workflow";
}
String origin = normalizeOrigin(request.getHeader("Origin"));
if (origin != null) {
return origin + normalizeBasePath(request.getContextPath()) + "/ai/workflow/design";
return origin + normalizeBasePath(request.getContextPath()) + "/share/workflow";
}
StringBuilder builder = new StringBuilder();
builder.append(request.getScheme()).append("://").append(request.getServerName());
@@ -134,7 +134,7 @@ public class WorkflowShareController {
builder.append(':').append(request.getServerPort());
}
return builder.append(normalizeBasePath(request.getContextPath()))
.append("/ai/workflow/design")
.append("/share/workflow")
.toString();
}

View File

@@ -28,7 +28,7 @@ public class WorkflowShareControllerTest {
Assert.assertEquals(
buildShareBaseUrl(request),
"https://example.test/easyflow/ai/workflow/design"
"https://example.test/easyflow/share/workflow"
);
}
@@ -47,7 +47,7 @@ public class WorkflowShareControllerTest {
Assert.assertEquals(
buildShareBaseUrl(request),
"https://example.test/easyflow/ai/workflow/design"
"https://example.test/easyflow/share/workflow"
);
}