diff --git a/mateclaw-server/src/main/java/vip/mate/tool/guard/service/ToolGuardRuleService.java b/mateclaw-server/src/main/java/vip/mate/tool/guard/service/ToolGuardRuleService.java index 340124b4..9dfdbe4b 100644 --- a/mateclaw-server/src/main/java/vip/mate/tool/guard/service/ToolGuardRuleService.java +++ b/mateclaw-server/src/main/java/vip/mate/tool/guard/service/ToolGuardRuleService.java @@ -64,6 +64,10 @@ public class ToolGuardRuleService { * 新增自定义规则 */ public ToolGuardRuleEntity createRule(ToolGuardRuleEntity rule) { + if (rule == null || rule.getRuleId() == null || rule.getRuleId().isBlank()) { + throw new IllegalArgumentException("Rule ID is required"); + } + rule.setRuleId(rule.getRuleId().trim()); rule.setBuiltin(false); ruleMapper.insert(rule); ruleRegistry.reload(); diff --git a/mateclaw-ui/src/i18n/locales/en-US.ts b/mateclaw-ui/src/i18n/locales/en-US.ts index c09c1172..8cb9907f 100644 --- a/mateclaw-ui/src/i18n/locales/en-US.ts +++ b/mateclaw-ui/src/i18n/locales/en-US.ts @@ -1340,6 +1340,10 @@ export default { remediation: 'Remediation', priority: 'Priority', }, + messages: { + ruleIdRequired: 'Rule ID is required', + saveFailed: 'Failed to save rule', + }, }, fileGuard: { title: 'File Guard', diff --git a/mateclaw-ui/src/i18n/locales/zh-CN.ts b/mateclaw-ui/src/i18n/locales/zh-CN.ts index 3e461d7b..86a55099 100644 --- a/mateclaw-ui/src/i18n/locales/zh-CN.ts +++ b/mateclaw-ui/src/i18n/locales/zh-CN.ts @@ -1238,6 +1238,10 @@ export default { remediation: '修复建议', priority: '优先级', }, + messages: { + ruleIdRequired: '规则 ID 不能为空', + saveFailed: '保存规则失败', + }, }, fileGuard: { title: '文件防护', diff --git a/mateclaw-ui/src/views/Security/ToolGuard/index.vue b/mateclaw-ui/src/views/Security/ToolGuard/index.vue index 1361f7a7..d64d7996 100644 --- a/mateclaw-ui/src/views/Security/ToolGuard/index.vue +++ b/mateclaw-ui/src/views/Security/ToolGuard/index.vue @@ -146,8 +146,13 @@