From 651d53050efb85aaea7a84e500cb1dfcec1c84f8 Mon Sep 17 00:00:00 2001 From: matevip Date: Tue, 19 May 2026 20:06:50 +0800 Subject: [PATCH] fix(workspace): return 403 instead of 500 for cross-workspace access --- .../mate/agent/binding/controller/AgentBindingController.java | 2 +- .../main/java/vip/mate/agent/controller/AgentController.java | 2 +- .../java/vip/mate/channel/controller/ChannelController.java | 2 +- .../vip/mate/dashboard/controller/DashboardController.java | 2 +- .../main/java/vip/mate/wiki/controller/WikiController.java | 2 +- .../mate/wiki/controller/WikiTransformationController.java | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mateclaw-server/src/main/java/vip/mate/agent/binding/controller/AgentBindingController.java b/mateclaw-server/src/main/java/vip/mate/agent/binding/controller/AgentBindingController.java index 4e0a96f5..31bec483 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/binding/controller/AgentBindingController.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/binding/controller/AgentBindingController.java @@ -139,7 +139,7 @@ public class AgentBindingController { } long requestedWs = headerWorkspaceId != null ? headerWorkspaceId : 1L; if (agent.getWorkspaceId() != null && !agent.getWorkspaceId().equals(requestedWs)) { - throw new MateClawException("err.common.wrong_workspace", "资源不属于当前工作区"); + throw new MateClawException("err.common.wrong_workspace", 403, "资源不属于当前工作区"); } } } diff --git a/mateclaw-server/src/main/java/vip/mate/agent/controller/AgentController.java b/mateclaw-server/src/main/java/vip/mate/agent/controller/AgentController.java index f2d6aac9..281035c9 100644 --- a/mateclaw-server/src/main/java/vip/mate/agent/controller/AgentController.java +++ b/mateclaw-server/src/main/java/vip/mate/agent/controller/AgentController.java @@ -270,7 +270,7 @@ public class AgentController { private void verifyResourceWorkspace(Long resourceWorkspaceId, Long headerWorkspaceId) { long requestedWs = headerWorkspaceId != null ? headerWorkspaceId : 1L; if (resourceWorkspaceId != null && !resourceWorkspaceId.equals(requestedWs)) { - throw new MateClawException("err.common.wrong_workspace", "资源不属于当前工作区"); + throw new MateClawException("err.common.wrong_workspace", 403, "资源不属于当前工作区"); } } diff --git a/mateclaw-server/src/main/java/vip/mate/channel/controller/ChannelController.java b/mateclaw-server/src/main/java/vip/mate/channel/controller/ChannelController.java index 68c95a31..eb5ac1b5 100644 --- a/mateclaw-server/src/main/java/vip/mate/channel/controller/ChannelController.java +++ b/mateclaw-server/src/main/java/vip/mate/channel/controller/ChannelController.java @@ -236,7 +236,7 @@ public class ChannelController { private void verifyResourceWorkspace(Long resourceWorkspaceId, Long headerWorkspaceId) { long requestedWs = headerWorkspaceId != null ? headerWorkspaceId : 1L; if (resourceWorkspaceId != null && !resourceWorkspaceId.equals(requestedWs)) { - throw new MateClawException("err.common.wrong_workspace", "资源不属于当前工作区"); + throw new MateClawException("err.common.wrong_workspace", 403, "资源不属于当前工作区"); } } } diff --git a/mateclaw-server/src/main/java/vip/mate/dashboard/controller/DashboardController.java b/mateclaw-server/src/main/java/vip/mate/dashboard/controller/DashboardController.java index 94803ec1..69dbb3da 100644 --- a/mateclaw-server/src/main/java/vip/mate/dashboard/controller/DashboardController.java +++ b/mateclaw-server/src/main/java/vip/mate/dashboard/controller/DashboardController.java @@ -62,7 +62,7 @@ public class DashboardController { if (job != null && job.getWorkspaceId() != null) { long wsId = workspaceId != null ? workspaceId : 1L; if (!job.getWorkspaceId().equals(wsId)) { - throw new MateClawException("err.common.wrong_workspace", "资源不属于当前工作区"); + throw new MateClawException("err.common.wrong_workspace", 403, "资源不属于当前工作区"); } } return R.ok(cronJobRunService.listByJobId(cronJobId, Math.min(limit, 100))); diff --git a/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java b/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java index b25d8fdd..377e470f 100644 --- a/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java +++ b/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiController.java @@ -622,7 +622,7 @@ public class WikiController { } long wsId = headerWorkspaceId != null ? headerWorkspaceId : 1L; if (kb.getWorkspaceId() != null && !kb.getWorkspaceId().equals(wsId)) { - throw new MateClawException("err.common.wrong_workspace", "资源不属于当前工作区"); + throw new MateClawException("err.common.wrong_workspace", 403, "资源不属于当前工作区"); } } } diff --git a/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiTransformationController.java b/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiTransformationController.java index 93acf41b..e4c9c7fd 100644 --- a/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiTransformationController.java +++ b/mateclaw-server/src/main/java/vip/mate/wiki/controller/WikiTransformationController.java @@ -263,14 +263,14 @@ public class WikiTransformationController { } long wsId = workspaceId != null ? workspaceId : 1L; if (kb.getWorkspaceId() != null && !kb.getWorkspaceId().equals(wsId)) { - throw new MateClawException("err.common.wrong_workspace", "Resource does not belong to current workspace"); + throw new MateClawException("err.common.wrong_workspace", 403, "Resource does not belong to current workspace"); } } private void verifyTemplateWorkspace(WikiTransformationEntity t, Long workspaceId) { long wsId = workspaceId != null ? workspaceId : 1L; if (t.getWorkspaceId() != null && !t.getWorkspaceId().equals(wsId)) { - throw new MateClawException("err.common.wrong_workspace", "Resource does not belong to current workspace"); + throw new MateClawException("err.common.wrong_workspace", 403, "Resource does not belong to current workspace"); } } }