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">