This is an automated email from the ASF dual-hosted git repository.
dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 49cbf96ba2 [INLONG-8813][Manager] Replacing whitespace characters in
MySQL JDBC URL (#8814)
49cbf96ba2 is described below
commit 49cbf96ba228b99590cab733011462139b2fea69
Author: Hao <[email protected]>
AuthorDate: Wed Aug 30 17:36:12 2023 +0800
[INLONG-8813][Manager] Replacing whitespace characters in MySQL JDBC URL
(#8814)
---
.../inlong/manager/common/consts/InlongConstants.java | 6 ++++++
.../inlong/manager/pojo/sink/mysql/MySQLSinkDTO.java | 14 +++++++-------
.../inlong/manager/pojo/sink/mysql/MySQLSinkDTOTest.java | 6 ++++++
3 files changed, 19 insertions(+), 7 deletions(-)
diff --git
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/consts/InlongConstants.java
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/consts/InlongConstants.java
index 1f45d451d4..3683280c6d 100644
---
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/consts/InlongConstants.java
+++
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/consts/InlongConstants.java
@@ -46,6 +46,8 @@ public class InlongConstants {
public static final String BLANK = " ";
+ public static final String EMPTY = "";
+
public static final String SLASH = "/";
public static final String COLON = ":";
@@ -64,8 +66,12 @@ public class InlongConstants {
public static final String QUESTION_MARK = "?";
+ public static final String AMPERSAND = "&";
+
public static final String NEW_LINE = "\n";
+ public static final String REGEX_WHITESPACE = "\\s";
+
public static final String ADMIN_USER = "admin";
public static final Integer AFFECTED_ONE_ROW = 1;
diff --git
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTO.java
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTO.java
index b4b485d629..983d5da3ef 100644
---
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTO.java
+++
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTO.java
@@ -232,7 +232,7 @@ public class MySQLSinkDTO {
while (resultUrl.contains(InlongConstants.PERCENT)) {
resultUrl = URLDecoder.decode(resultUrl, "UTF-8");
}
- resultUrl = resultUrl.replaceAll(InlongConstants.BLANK, "");
+ resultUrl = resultUrl.replaceAll(InlongConstants.REGEX_WHITESPACE,
InlongConstants.EMPTY);
if (resultUrl.contains(InlongConstants.QUESTION_MARK)) {
StringBuilder builder = new StringBuilder();
@@ -241,19 +241,19 @@ public class MySQLSinkDTO {
List<String> paramList = new ArrayList<>();
String queryString = StringUtils.substringAfter(resultUrl,
InlongConstants.QUESTION_MARK);
- for (String param : queryString.split("&")) {
- String key = StringUtils.substringBefore(param, "=");
- String value = StringUtils.substringAfter(param, "=");
+ for (String param :
queryString.split(InlongConstants.AMPERSAND)) {
+ String key = StringUtils.substringBefore(param,
InlongConstants.EQUAL);
+ String value = StringUtils.substringAfter(param,
InlongConstants.EQUAL);
if (SENSITIVE_REMOVE_PARAM_MAP.contains(key) ||
SENSITIVE_REPLACE_PARAM_MAP.containsKey(key)) {
continue;
}
- paramList.add(key + "=" + value);
+ paramList.add(key + InlongConstants.EQUAL + value);
}
- SENSITIVE_REPLACE_PARAM_MAP.forEach((key, value) ->
paramList.add(key + "=" + value));
+ SENSITIVE_REPLACE_PARAM_MAP.forEach((key, value) ->
paramList.add(key + InlongConstants.EQUAL + value));
- String params = StringUtils.join(paramList, "&");
+ String params = StringUtils.join(paramList,
InlongConstants.AMPERSAND);
builder.append(params);
resultUrl = builder.toString();
}
diff --git
a/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTOTest.java
b/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTOTest.java
index fe6d4f7dd1..3955a1538c 100644
---
a/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTOTest.java
+++
b/inlong-manager/manager-pojo/src/test/java/org/apache/inlong/manager/pojo/sink/mysql/MySQLSinkDTOTest.java
@@ -91,6 +91,12 @@ public class MySQLSinkDTOTest {
Assertions.assertEquals(
"jdbc:mysql://127.0.0.1:3306?autoDeserialize=false&allowUrlInLocalInfile=false&allowLoadLocalInfile=false",
originUrl);
+
+ originUrl = MySQLSinkDTO.filterSensitive(
+
"jdbc:mysql://127.0.0.1:3306?autoDeserialize\t\t=%59%65%73&allowLoa\r\rdLocalInfile
=
yes&allowUrlInLocalInfil%65+\t=%74%72%75%45&allowLoadLocalInfileInPath\n=%2F");
+ Assertions.assertEquals(
+
"jdbc:mysql://127.0.0.1:3306?autoDeserialize=false&allowUrlInLocalInfile=false&allowLoadLocalInfile=false",
+ originUrl);
}
@Test