Browse Source

1.AppConfigDto 中使用 @Pattern 注解正则匹配 appId 的值, 仅允许数字、字母、短横线(-)和下划线(_)
2.AppBuildServiceImpl#createAppBuild 方法中的 appId 使用前端提交的值

reghao 4 weeks ago
parent
commit
3e72d3c7a9

+ 2 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/app/model/dto/AppConfigDto.java

@@ -21,7 +21,8 @@ import jakarta.validation.constraints.Pattern;
 @Getter
 public class AppConfigDto {
     @NotBlank(message = "应用 ID 不能为空字符串")
-    @Length(min = 2, max = 32, message = "应用 ID 仅可包含数字, 小写字母和短横线(-)等字符, 长度为 2 ~ 32 个字符")
+    @Length(min = 2, max = 16, message = "应用 ID 仅可包含仅允许数字、字母、短横线(-)和下划线(_)等字符, 长度为 2 ~ 16 个字符")
+    @Pattern(regexp = "^[a-zA-Z0-9-_]+$", message = "仅允许数字、字母、短横线(-)和下划线(_)")
     private String appId;
     @NotNull
     @ValidEnum(value = AppType.class, message = "请选择正确的应用类型")

+ 2 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/app/service/impl/AppBuildServiceImpl.java

@@ -64,7 +64,8 @@ public class AppBuildServiceImpl implements AppBuildService {
         String env = appConfigDto.getEnv();
         String projName0 = appRepo.substring(appRepo.lastIndexOf("/")+1);
         String projName = projName0.replace(".git", "");
-        String appId = String.format("%s_%s", projName, env);
+        //String appId = String.format("%s_%s", projName, env);
+        String appId = appConfigDto.getAppId();
         AppConfig appConfig = appConfigRepository.findByAppId(appId);
         if (appConfig != null) {
             String msg = String.format("%s 已存在", appId);