diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java index 6f8d1dbd6..5e669a433 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java @@ -202,6 +202,12 @@ public class ModelServiceImpl implements ModelService { String message = String.format("模型名称[%s]包含特殊字符(%s), 请修改", modelReq.getName(), forbiddenCharacters); throw new InvalidArgumentException(message); } + + if (!NameCheckUtils.isValidIdentifier(modelReq.getBizName())) { + String message = String.format("模型英文名[%s]需要为下划线字母数字组合, 请修改", modelReq.getBizName()); + throw new InvalidArgumentException(message); + } + List dims = modelReq.getModelDetail().getDimensions(); List measures = modelReq.getModelDetail().getMeasures(); List identifies = modelReq.getModelDetail().getIdentifiers(); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/NameCheckUtils.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/NameCheckUtils.java index 28f08b745..7171dd780 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/NameCheckUtils.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/NameCheckUtils.java @@ -6,7 +6,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class NameCheckUtils { + public static final String forbiddenCharactersRegex = "[()%#()]"; + public static final String identifierRegex = "^[_a-zA-Z0-9]+$"; public static String findForbiddenCharacters(String str) { if (StringUtils.isBlank(str)) { @@ -22,4 +24,13 @@ public class NameCheckUtils { return foundCharacters.toString().trim(); } + public static Boolean isValidIdentifier(String str) { + if (StringUtils.isBlank(str)) { + return false; + } + Pattern pattern = Pattern.compile(identifierRegex); + Matcher matcher = pattern.matcher(str); + return matcher.find(); + } + } \ No newline at end of file