This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.3 by this push:
     new b759483a4 [Improve] maven build args check improvement
b759483a4 is described below

commit b759483a4e2c7de856413895f5b50540bc21f64d
Author: benjobs <[email protected]>
AuthorDate: Sat Jan 6 09:10:36 2024 +0800

    [Improve] maven build args check improvement
---
 .../streampark/console/core/entity/Project.java    | 53 +++++++++-------------
 1 file changed, 22 insertions(+), 31 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
index 6feb8b275..0a380cb46 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
@@ -218,62 +218,53 @@ public class Project implements Serializable {
     StringBuilder cmdBuffer = new StringBuilder(mvn).append(" clean package 
-DskipTests ");
 
     if (StringUtils.isNotBlank(this.buildArgs)) {
-      String dangerArgs = getDangerArgs(this.buildArgs);
-      if (dangerArgs == null) {
-        cmdBuffer.append(this.buildArgs.trim());
-      } else {
+      String args = getIllegalArgs(this.buildArgs);
+      if (args != null) {
         throw new IllegalArgumentException(
             String.format(
-                "Invalid maven argument, dangerous args: %s, in your 
buildArgs: %s",
-                dangerArgs, this.buildArgs));
+                "Illegal argument: \"%s\" in maven build parameters: %s", 
args, this.buildArgs));
       }
+      cmdBuffer.append(this.buildArgs.trim());
     }
 
     String setting = 
InternalConfigHolder.get(CommonConfig.MAVEN_SETTINGS_PATH());
     if (StringUtils.isNotBlank(setting)) {
-      String dangerArgs = getDangerArgs(setting);
-      if (dangerArgs == null) {
-        File file = new File(setting);
-        if (file.exists() && file.isFile()) {
-          cmdBuffer.append(" --settings ").append(setting);
-        } else {
-          throw new IllegalArgumentException(
-              String.format("Invalid maven-setting file path, %s no exists or 
not file", setting));
-        }
+      String args = getIllegalArgs(setting);
+      if (args != null) {
+        throw new IllegalArgumentException(
+            String.format("Illegal argument \"%s\" in maven-setting file path: 
%s", args, setting));
+      }
+      File file = new File(setting);
+      if (file.exists() && file.isFile()) {
+        cmdBuffer.append(" --settings ").append(setting);
       } else {
         throw new IllegalArgumentException(
             String.format(
-                "Invalid maven-setting file path, dangerous args: %s, in your 
maven setting path: %s",
-                dangerArgs, setting));
+                "Invalid maven-setting file path \"%s\", the path not exist or 
is not file",
+                setting));
       }
     }
     return cmdBuffer.toString();
   }
 
-  private String getDangerArgs(String param) {
+  private String getIllegalArgs(String param) {
     Pattern pattern = Pattern.compile("(`.*?`)|(\\$\\((.*?)\\))");
     Matcher matcher = pattern.matcher(param);
     if (matcher.find()) {
-      String dangerArgs = matcher.group(1);
-      if (dangerArgs == null) {
-        dangerArgs = matcher.group(2);
-      }
-      return dangerArgs;
+      return matcher.group(1) == null ? matcher.group(2) : matcher.group(1);
     }
 
-    String result = null;
-    Iterator<String> dangerIter = Arrays.asList(";", "|", "&", ">").iterator();
+    Iterator<String> iterator = Arrays.asList(";", "|", "&", ">").iterator();
     String[] argsList = param.split("\\s+");
-    while (result == null && dangerIter.hasNext()) {
-      String danger = dangerIter.next();
+    while (iterator.hasNext()) {
+      String chr = iterator.next();
       for (String arg : argsList) {
-        if (arg.contains(danger)) {
-          result = arg;
-          break;
+        if (arg.contains(chr)) {
+          return arg;
         }
       }
     }
-    return result;
+    return null;
   }
 
   @JsonIgnore

Reply via email to