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

wenjun pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 934da2e6ee [Improvement-16999] Fix SensitiveDataConverter cannot 
convert empty data (#17000)
934da2e6ee is described below

commit 934da2e6eec9b1856cbaec58921337ac0ed3400a
Author: Wenjun Ruan <[email protected]>
AuthorDate: Sat Feb 8 15:20:29 2025 +0800

    [Improvement-16999] Fix SensitiveDataConverter cannot convert empty data 
(#17000)
---
 docs/docs/en/architecture/design.md                |  2 +-
 docs/docs/zh/architecture/design.md                |  2 +-
 .../common/log/SensitiveDataConverter.java         | 77 ----------------------
 .../api/datasource/DataSourceProcessor.java        |  3 +-
 .../datasource/api/utils/DataSourceUtils.java      | 10 +--
 .../src/main/resources/logback-spring.xml          |  2 +-
 .../src/test/resources/logback.xml                 |  2 +-
 .../src/main/resources/logback-spring.xml          |  2 +-
 .../plugin/task/api/TaskConstants.java             |  1 +
 .../task/api/log/SensitiveDataConverter.java       | 26 ++++----
 .../task/api}/log/SensitiveDataConverterTest.java  | 46 ++++++-------
 .../plugin/task/sqoop/SqoopTaskTest.java           |  2 +-
 .../src/main/resources/logback-spring.xml          |  2 +-
 .../src/test/resources/logback.xml                 |  2 +-
 14 files changed, 49 insertions(+), 130 deletions(-)

diff --git a/docs/docs/en/architecture/design.md 
b/docs/docs/en/architecture/design.md
index dfd443e963..4bc8b06eed 100644
--- a/docs/docs/en/architecture/design.md
+++ b/docs/docs/en/architecture/design.md
@@ -197,7 +197,7 @@ In the early schedule design, if there is no priority 
design and use the fair sc
 - For details, please refer to the logback configuration of Master and Worker, 
as shown in the following example:
 
 ```xml
-<conversionRule conversionWord="message" 
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+<conversionRule conversionWord="message" 
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
 <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
     <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
     <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">
diff --git a/docs/docs/zh/architecture/design.md 
b/docs/docs/zh/architecture/design.md
index 246bd6b1ac..5ceffc4e0a 100644
--- a/docs/docs/zh/architecture/design.md
+++ b/docs/docs/zh/architecture/design.md
@@ -195,7 +195,7 @@
 - 详情可参考Master和Worker的logback配置,如下示例:
 
 ```xml
-<conversionRule conversionWord="message" 
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+<conversionRule conversionWord="message" 
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
 <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
     <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
     <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">
diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/SensitiveDataConverter.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/SensitiveDataConverter.java
deleted file mode 100644
index 57b2bcde59..0000000000
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/log/SensitiveDataConverter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.dolphinscheduler.common.log;
-
-import org.apache.dolphinscheduler.common.constants.Constants;
-import org.apache.dolphinscheduler.common.constants.DataSourceConstants;
-
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import ch.qos.logback.classic.pattern.MessageConverter;
-import ch.qos.logback.classic.spi.ILoggingEvent;
-
-import com.google.common.base.Strings;
-
-/**
- * sensitive data log converter
- */
-public class SensitiveDataConverter extends MessageConverter {
-
-    private static Pattern multilinePattern;
-    private static HashSet<String> maskPatterns =
-            new 
HashSet<>(Arrays.asList(DataSourceConstants.DATASOURCE_PASSWORD_REGEX));
-
-    @Override
-    public String convert(ILoggingEvent event) {
-
-        // get original log
-        String requestLogMsg = event.getFormattedMessage();
-
-        // desensitization log
-        return maskSensitiveData(requestLogMsg);
-    }
-
-    public static void addMaskPattern(String maskPattern) {
-        maskPatterns.add(maskPattern);
-    }
-
-    public static String maskSensitiveData(final String logMsg) {
-        if (StringUtils.isEmpty(logMsg)) {
-            return logMsg;
-        }
-        multilinePattern = Pattern.compile(String.join("|", maskPatterns), 
Pattern.MULTILINE);
-
-        StringBuffer sb = new StringBuffer(logMsg.length());
-        Matcher matcher = multilinePattern.matcher(logMsg);
-
-        while (matcher.find()) {
-            String password = matcher.group();
-            String maskPassword = Strings.repeat(Constants.STAR, 
password.length());
-            matcher.appendReplacement(sb, maskPassword);
-        }
-        matcher.appendTail(sb);
-
-        return sb.toString();
-    }
-
-}
diff --git 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/datasource/DataSourceProcessor.java
 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/datasource/DataSourceProcessor.java
index 7c8e313039..5a2338a3a5 100644
--- 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/datasource/DataSourceProcessor.java
+++ 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/datasource/DataSourceProcessor.java
@@ -36,7 +36,8 @@ public interface DataSourceProcessor {
     BaseDataSourceParamDTO castDatasourceParamDTO(String paramJson);
 
     /**
-     * check datasource param is valid
+     * check datasource param is valid.
+     * @throws IllegalArgumentException if invalid
      */
     void checkDatasourceParam(BaseDataSourceParamDTO datasourceParam);
 
diff --git 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/utils/DataSourceUtils.java
 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/utils/DataSourceUtils.java
index e3e43e52f0..20e80d945f 100644
--- 
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/utils/DataSourceUtils.java
+++ 
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/utils/DataSourceUtils.java
@@ -46,16 +46,8 @@ public class DataSourceUtils {
         
getDatasourceProcessor(baseDataSourceParamDTO.getType()).checkDatasourceParam(baseDataSourceParamDTO);
     }
 
-    /**
-     * build connection url
-     *
-     * @param baseDataSourceParamDTO datasourceParam
-     */
     public static ConnectionParam buildConnectionParams(BaseDataSourceParamDTO 
baseDataSourceParamDTO) {
-        ConnectionParam connectionParams = 
getDatasourceProcessor(baseDataSourceParamDTO.getType())
-                .createConnectionParams(baseDataSourceParamDTO);
-        log.info("Parameters map:{}", connectionParams);
-        return connectionParams;
+        return 
getDatasourceProcessor(baseDataSourceParamDTO.getType()).createConnectionParams(baseDataSourceParamDTO);
     }
 
     public static ConnectionParam buildConnectionParams(DbType dbType, String 
connectionJson) {
diff --git a/dolphinscheduler-master/src/main/resources/logback-spring.xml 
b/dolphinscheduler-master/src/main/resources/logback-spring.xml
index 5ce1423d0d..e366eec71d 100644
--- a/dolphinscheduler-master/src/main/resources/logback-spring.xml
+++ b/dolphinscheduler-master/src/main/resources/logback-spring.xml
@@ -30,7 +30,7 @@
     </appender>
 
     <conversionRule conversionWord="message"
-                    
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+                    
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
     <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
         <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
         <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">
diff --git a/dolphinscheduler-master/src/test/resources/logback.xml 
b/dolphinscheduler-master/src/test/resources/logback.xml
index 2af91b3daa..18d1350c24 100644
--- a/dolphinscheduler-master/src/test/resources/logback.xml
+++ b/dolphinscheduler-master/src/test/resources/logback.xml
@@ -30,7 +30,7 @@
     </appender>
 
     <conversionRule conversionWord="message"
-                    
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+                    
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
     <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
         <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
         <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">
diff --git 
a/dolphinscheduler-standalone-server/src/main/resources/logback-spring.xml 
b/dolphinscheduler-standalone-server/src/main/resources/logback-spring.xml
index 2d74923c30..6734f7c6fa 100644
--- a/dolphinscheduler-standalone-server/src/main/resources/logback-spring.xml
+++ b/dolphinscheduler-standalone-server/src/main/resources/logback-spring.xml
@@ -51,7 +51,7 @@
     <logger name="org.apache.hadoop" level="WARN"/>
 
     <conversionRule conversionWord="message"
-                    
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+                    
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
     <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
         <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
         <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskConstants.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskConstants.java
index bec200bc30..48376e0179 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskConstants.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/TaskConstants.java
@@ -387,4 +387,5 @@ public class TaskConstants {
     public static final String TASK_INSTANCE_ID_MDC_KEY = "taskInstanceId";
 
     public static final String STAR = "*";
+    public static final String SENSITIVE_DATA_MASK = "******";
 }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverter.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverter.java
index 1c90b03139..ea70aaef76 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverter.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverter.java
@@ -21,24 +21,25 @@ import 
org.apache.dolphinscheduler.plugin.task.api.TaskConstants;
 
 import org.apache.commons.lang3.StringUtils;
 
-import java.util.Collections;
 import java.util.HashSet;
+import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import ch.qos.logback.classic.pattern.MessageConverter;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 
-import com.google.common.base.Strings;
-
 /**
  * sensitive data log converter
  */
 public class SensitiveDataConverter extends MessageConverter {
 
     private static Pattern multilinePattern;
-    private static HashSet<String> maskPatterns =
-            new 
HashSet<>(Collections.singletonList(TaskConstants.DATASOURCE_PASSWORD_REGEX));
+    private static final Set<String> maskPatterns = new HashSet<>();
+
+    static {
+        addMaskPattern(TaskConstants.DATASOURCE_PASSWORD_REGEX);
+    }
 
     @Override
     public String convert(ILoggingEvent event) {
@@ -50,23 +51,24 @@ public class SensitiveDataConverter extends 
MessageConverter {
         return maskSensitiveData(requestLogMsg);
     }
 
-    public static void addMaskPattern(String maskPattern) {
+    public static synchronized void addMaskPattern(final String maskPattern) {
+        if (maskPatterns.contains(maskPattern)) {
+            return;
+        }
         maskPatterns.add(maskPattern);
+        multilinePattern = Pattern.compile(String.join("|", maskPatterns), 
Pattern.MULTILINE);
     }
 
     public static String maskSensitiveData(final String logMsg) {
         if (StringUtils.isEmpty(logMsg)) {
             return logMsg;
         }
-        multilinePattern = Pattern.compile(String.join("|", maskPatterns), 
Pattern.MULTILINE);
 
-        StringBuffer sb = new StringBuffer(logMsg.length());
-        Matcher matcher = multilinePattern.matcher(logMsg);
+        final StringBuffer sb = new StringBuffer(logMsg.length());
+        final Matcher matcher = multilinePattern.matcher(logMsg);
 
         while (matcher.find()) {
-            String password = matcher.group();
-            String maskPassword = Strings.repeat(TaskConstants.STAR, 
password.length());
-            matcher.appendReplacement(sb, maskPassword);
+            matcher.appendReplacement(sb, TaskConstants.SENSITIVE_DATA_MASK);
         }
         matcher.appendTail(sb);
 
diff --git 
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/log/SensitiveDataConverterTest.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverterTest.java
similarity index 74%
rename from 
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/log/SensitiveDataConverterTest.java
rename to 
dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverterTest.java
index c641c296b8..b1d242c110 100644
--- 
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/log/SensitiveDataConverterTest.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/test/java/org/apache/dolphinscheduler/plugin/task/api/log/SensitiveDataConverterTest.java
@@ -15,26 +15,22 @@
  * limitations under the License.
  */
 
-package org.apache.dolphinscheduler.common.log;
+package org.apache.dolphinscheduler.plugin.task.api.log;
 
 import static 
org.apache.dolphinscheduler.common.constants.Constants.K8S_CONFIG_REGEX;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.HashMap;
 
-import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-public class SensitiveDataConverterTest {
-
-    private final Logger logger = 
LoggerFactory.getLogger(SensitiveDataConverterTest.class);
+class SensitiveDataConverterTest {
 
     /**
      * mask sensitive logMsg - sql task datasource password
      */
     @Test
-    public void testPwdLogMsgConverter() {
+    void testPwdLogMsgConverter() {
         HashMap<String, String> tcs = new HashMap<>();
         tcs.put("{\"address\":\"jdbc:mysql://192.168.xx.xx:3306\","
                 + "\"database\":\"carbond\","
@@ -46,7 +42,7 @@ public class SensitiveDataConverterTest {
                         + "\"database\":\"carbond\","
                         + 
"\"jdbcUrl\":\"jdbc:mysql://192.168.xx.xx:3306/ods\","
                         + "\"user\":\"view\","
-                        + "\"password\":\"*****\"}");
+                        + "\"password\":\"******\"}");
 
         tcs.put("End initialize task {\n" +
                 "  \"resourceParametersHelper\" : {\n" +
@@ -70,7 +66,7 @@ public class SensitiveDataConverterTest {
                         "        \"1\" : {\n" +
                         "          \"resourceType\" : \"DATASOURCE\",\n" +
                         "          \"type\" : \"ORACLE\",\n" +
-                        "          \"connectionParams\" : 
\"{\\\"user\\\":\\\"user\\\",\\\"password\\\":\\\"*****\\\"}\",\n"
+                        "          \"connectionParams\" : 
\"{\\\"user\\\":\\\"user\\\",\\\"password\\\":\\\"******\\\"}\",\n"
                         +
                         "          \"DATASOURCE\" : null\n" +
                         "        }\n" +
@@ -81,24 +77,32 @@ public class SensitiveDataConverterTest {
 
         for (String logMsg : tcs.keySet()) {
             String maskedLog = 
SensitiveDataConverter.maskSensitiveData(logMsg);
-            logger.info("original parameter : {}", logMsg);
-            logger.info("masked parameter : {}", maskedLog);
-            Assertions.assertEquals(tcs.get(logMsg), maskedLog);
+            assertEquals(tcs.get(logMsg), maskedLog);
         }
     }
 
     @Test
-    public void testPostJdbcInfoLogMsgConverter() {
+    void testPostJdbcInfoLogMsgConverter() {
         String POST_JDBC_INFO_REGEX = "(?<=(post jdbc info:)).*(?=)";
         SensitiveDataConverter.addMaskPattern(POST_JDBC_INFO_REGEX);
         String postJdbcInfoLogMsg = "post jdbc 
info:clickhouse,jdbc:clickhouse://127.0.0.1:8123/td_cdp,admin,123%@@56";
         final String maskedLog = 
SensitiveDataConverter.maskSensitiveData(postJdbcInfoLogMsg);
-        String expectedMsg = "post jdbc 
info:*****************************************************************";
-        Assertions.assertEquals(expectedMsg, maskedLog);
+        String expectedMsg = "post jdbc info:******";
+        assertEquals(expectedMsg, maskedLog);
     }
 
     @Test
-    public void testK8SLogMsgConverter() {
+    void testMaskSensitiveDataWithEmptyPassword() {
+        String postJdbcInfoLogMsg =
+                "MySQLConnectionParam{user='admin', password='', 
address='jdbc:mysql://localhost:3306', database='aa', 
jdbcUrl='jdbc:mysql://localhost:3306/aa', driverLocation='null', 
driverClassName='com.mysql.cj.jdbc.Driver', validationQuery='select 1', 
other='null'}";
+        final String maskedLog = 
SensitiveDataConverter.maskSensitiveData(postJdbcInfoLogMsg);
+        final String expectedMsg =
+                "MySQLConnectionParam{user='admin', password='******', 
address='jdbc:mysql://localhost:3306', database='aa', 
jdbcUrl='jdbc:mysql://localhost:3306/aa', driverLocation='null', 
driverClassName='com.mysql.cj.jdbc.Driver', validationQuery='select 1', 
other='null'}";
+        assertEquals(expectedMsg, maskedLog);
+    }
+
+    @Test
+    void testK8SLogMsgConverter() {
         String msg = "End initialize task {\n" +
                 "  \"taskName\" : \"echo\",\n" +
                 "  \"k8sTaskExecutionContext\" : {\n" +
@@ -110,7 +114,7 @@ public class SensitiveDataConverterTest {
         String maskMsg = "End initialize task {\n" +
                 "  \"taskName\" : \"echo\",\n" +
                 "  \"k8sTaskExecutionContext\" : {\n" +
-                "    \"configYaml\" : 
\"**************************************\",\n" +
+                "    \"configYaml\" : \"******\",\n" +
                 "    \"namespace\" : \"abc\"\n" +
                 "  },\n" +
                 "  \"logBufferEnable\" : false\n" +
@@ -118,10 +122,6 @@ public class SensitiveDataConverterTest {
         SensitiveDataConverter.addMaskPattern(K8S_CONFIG_REGEX);
         final String maskedLog = SensitiveDataConverter.maskSensitiveData(msg);
 
-        logger.info("original parameter : {}", msg);
-        logger.info("masked parameter : {}", maskedLog);
-
-        Assertions.assertEquals(maskMsg, maskedLog);
-
+        assertEquals(maskMsg, maskedLog);
     }
 }
diff --git 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/test/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopTaskTest.java
 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/test/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopTaskTest.java
index cb0b887a75..28c4da5714 100644
--- 
a/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/test/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopTaskTest.java
+++ 
b/dolphinscheduler-task-plugin/dolphinscheduler-task-sqoop/src/test/java/org/apache/dolphinscheduler/plugin/task/sqoop/SqoopTaskTest.java
@@ -30,7 +30,7 @@ public class SqoopTaskTest {
                 "sqoop import -D mapred.job.name=sqoop_task -m 1 --connect 
\"jdbc:mysql://localhost:3306/defuault\" --username root --password 
\"mypassword\" --table student --target-dir /sqoop_test --as-textfile";
 
         final String maskScript =
-                "sqoop import -D mapred.job.name=sqoop_task -m 1 --connect 
\"jdbc:mysql://localhost:3306/defuault\" --username root --password 
\"**********\" --table student --target-dir /sqoop_test --as-textfile";
+                "sqoop import -D mapred.job.name=sqoop_task -m 1 --connect 
\"jdbc:mysql://localhost:3306/defuault\" --username root --password \"******\" 
--table student --target-dir /sqoop_test --as-textfile";
 
         
SensitiveDataConverter.addMaskPattern(SqoopConstants.SQOOP_PASSWORD_REGEX);
         Assertions.assertEquals(maskScript, 
SensitiveDataConverter.maskSensitiveData(originalScript));
diff --git a/dolphinscheduler-worker/src/main/resources/logback-spring.xml 
b/dolphinscheduler-worker/src/main/resources/logback-spring.xml
index 1bfbdd506d..01b35c2300 100644
--- a/dolphinscheduler-worker/src/main/resources/logback-spring.xml
+++ b/dolphinscheduler-worker/src/main/resources/logback-spring.xml
@@ -30,7 +30,7 @@
     </appender>
 
     <conversionRule conversionWord="message"
-                    
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+                    
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
     <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
         <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
         <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">
diff --git a/dolphinscheduler-worker/src/test/resources/logback.xml 
b/dolphinscheduler-worker/src/test/resources/logback.xml
index 10fc24d974..c4cbf15468 100644
--- a/dolphinscheduler-worker/src/test/resources/logback.xml
+++ b/dolphinscheduler-worker/src/test/resources/logback.xml
@@ -30,7 +30,7 @@
     </appender>
 
     <conversionRule conversionWord="message"
-                    
converterClass="org.apache.dolphinscheduler.common.log.SensitiveDataConverter"/>
+                    
converterClass="org.apache.dolphinscheduler.plugin.task.api.log.SensitiveDataConverter"/>
     <appender name="TASKLOGFILE" 
class="ch.qos.logback.classic.sift.SiftingAppender">
         <filter 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogFilter"/>
         <Discriminator 
class="org.apache.dolphinscheduler.plugin.task.api.log.TaskLogDiscriminator">

Reply via email to