You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampark.apache.org by be...@apache.org on 2023/12/21 15:40:20 UTC
(incubator-streampark) 01/01: [Improve] maven build args improvement
This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch maven
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit f5e098caaccbdbc93a445206c4ec79d30bff4ef0
Author: benjobs <be...@gmail.com>
AuthorDate: Thu Dec 21 23:40:06 2023 +0800
[Improve] maven build args improvement
---
.../streampark/console/core/entity/Project.java | 35 +++++++++++++++-------
1 file changed, 25 insertions(+), 10 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 ae47d129a..658bb575f 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
@@ -46,6 +46,8 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Slf4j
@@ -218,21 +220,21 @@ public class Project implements Serializable {
StringBuilder cmdBuffer = new StringBuilder(mvn).append(" clean package -DskipTests ");
if (StringUtils.isNotBlank(this.buildArgs)) {
- List<String> dangerArgs = getDangerArgs(this.buildArgs);
- if (dangerArgs.isEmpty()) {
+ String dangerArgs = getDangerArgs(this.buildArgs);
+ if (dangerArgs == null) {
cmdBuffer.append(this.buildArgs.trim());
} else {
throw new IllegalArgumentException(
String.format(
- "Invalid maven argument, dangerous operation symbol detected: %s, in your buildArgs: %s",
- dangerArgs.stream().collect(Collectors.joining(",")), this.buildArgs));
+ "Invalid maven argument, dangerous args: %s, in your buildArgs: %s",
+ dangerArgs, this.buildArgs));
}
}
String setting = InternalConfigHolder.get(CommonConfig.MAVEN_SETTINGS_PATH());
if (StringUtils.isNotBlank(setting)) {
- List<String> dangerArgs = getDangerArgs(setting);
- if (dangerArgs.isEmpty()) {
+ String dangerArgs = getDangerArgs(setting);
+ if (dangerArgs == null) {
File file = new File(setting);
if (file.exists() && file.isFile()) {
cmdBuffer.append(" --settings ").append(setting);
@@ -243,14 +245,24 @@ public class Project implements Serializable {
} else {
throw new IllegalArgumentException(
String.format(
- "Invalid maven-setting file path, dangerous operation symbol detected: %s, in your maven setting path: %s",
- dangerArgs.stream().collect(Collectors.joining(",")), setting));
+ "Invalid maven-setting file path, dangerous args: %s, in your maven setting path: %s",
+ dangerArgs, setting));
}
}
return cmdBuffer.toString();
}
- private List<String> getDangerArgs(String param) {
+ private String getDangerArgs(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;
+ }
+
String[] args = param.split("\\s+");
List<String> dangerArgs = new ArrayList<>();
for (String arg : args) {
@@ -271,7 +283,10 @@ public class Project implements Serializable {
}
}
}
- return dangerArgs;
+ if (!dangerArgs.isEmpty()) {
+ return dangerArgs.stream().collect(Collectors.joining(","));
+ }
+ return null;
}
@JsonIgnore