mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-01 19:58:29 +08:00
Fix data quality pwd error (#13643)
This commit is contained in:
parent
7586710d49
commit
43d79e45b4
@ -31,6 +31,7 @@ import org.apache.dolphinscheduler.data.quality.config.ValidateResult;
|
||||
import org.apache.dolphinscheduler.data.quality.execution.SparkRuntimeEnvironment;
|
||||
import org.apache.dolphinscheduler.data.quality.flow.batch.BatchReader;
|
||||
import org.apache.dolphinscheduler.data.quality.utils.ConfigUtils;
|
||||
import org.apache.dolphinscheduler.data.quality.utils.ParserUtils;
|
||||
|
||||
import org.apache.spark.sql.DataFrameReader;
|
||||
import org.apache.spark.sql.Dataset;
|
||||
@ -79,7 +80,7 @@ public class JdbcReader implements BatchReader {
|
||||
.option(URL, config.getString(URL))
|
||||
.option(DB_TABLE, config.getString(TABLE))
|
||||
.option(USER, config.getString(USER))
|
||||
.option(PASSWORD, config.getString(PASSWORD))
|
||||
.option(PASSWORD, ParserUtils.decode(config.getString(PASSWORD)))
|
||||
.option(DRIVER, config.getString(DRIVER));
|
||||
|
||||
Config jdbcConfig = ConfigUtils.extractSubConfig(config, JDBC + DOTS, false);
|
||||
|
@ -32,6 +32,7 @@ import org.apache.dolphinscheduler.data.quality.config.Config;
|
||||
import org.apache.dolphinscheduler.data.quality.config.ValidateResult;
|
||||
import org.apache.dolphinscheduler.data.quality.execution.SparkRuntimeEnvironment;
|
||||
import org.apache.dolphinscheduler.data.quality.flow.batch.BatchWriter;
|
||||
import org.apache.dolphinscheduler.data.quality.utils.ParserUtils;
|
||||
|
||||
import org.apache.spark.sql.Dataset;
|
||||
import org.apache.spark.sql.Row;
|
||||
@ -80,7 +81,7 @@ public class JdbcWriter implements BatchWriter {
|
||||
.option(URL, config.getString(URL))
|
||||
.option(DB_TABLE, config.getString(TABLE))
|
||||
.option(USER, config.getString(USER))
|
||||
.option(PASSWORD, config.getString(PASSWORD))
|
||||
.option(PASSWORD, ParserUtils.decode(config.getString(PASSWORD)))
|
||||
.mode(config.getString(SAVE_MODE))
|
||||
.save();
|
||||
}
|
||||
|
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* 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.data.quality.utils;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import java.net.URLDecoder;
|
||||
import java.net.URLEncoder;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* ParserUtil
|
||||
*/
|
||||
@Slf4j
|
||||
public class ParserUtils {
|
||||
|
||||
private ParserUtils() {
|
||||
throw new UnsupportedOperationException("Construct ParserUtils");
|
||||
}
|
||||
|
||||
public static String encode(String str) {
|
||||
String rs = str;
|
||||
try {
|
||||
rs = URLEncoder.encode(str, UTF_8.toString());
|
||||
} catch (Exception e) {
|
||||
log.error("encode str exception!", e);
|
||||
}
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
public static String decode(String str) {
|
||||
String rs = str;
|
||||
try {
|
||||
rs = URLDecoder.decode(str, UTF_8.toString());
|
||||
} catch (Exception e) {
|
||||
log.error("decode str exception!", e);
|
||||
}
|
||||
|
||||
return rs;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* 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.data.quality.utils;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class ParserUtilsTest {
|
||||
|
||||
@Test
|
||||
public void testParserUtils() {
|
||||
String testStr = "aaa$bbb$ccc%ddd^eee#fff";
|
||||
String encode = ParserUtils.encode(testStr);
|
||||
String decode = ParserUtils.decode(encode);
|
||||
Assertions.assertEquals(testStr, decode);
|
||||
|
||||
String blank = "";
|
||||
Assertions.assertEquals(ParserUtils.encode(blank), blank);
|
||||
Assertions.assertEquals(ParserUtils.decode(blank), blank);
|
||||
|
||||
Assertions.assertNull(ParserUtils.encode(null));
|
||||
Assertions.assertNull(ParserUtils.decode(null));
|
||||
}
|
||||
}
|
@ -60,6 +60,7 @@ import static org.apache.dolphinscheduler.plugin.task.api.utils.DataQualityConst
|
||||
import static org.apache.dolphinscheduler.plugin.task.api.utils.DataQualityConstants.USER;
|
||||
|
||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||
import org.apache.dolphinscheduler.data.quality.utils.ParserUtils;
|
||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.DataSourceUtils;
|
||||
import org.apache.dolphinscheduler.plugin.task.api.DataQualityTaskExecutionContext;
|
||||
import org.apache.dolphinscheduler.plugin.task.api.enums.dp.ExecuteSqlType;
|
||||
@ -120,7 +121,7 @@ public class RuleParserUtils {
|
||||
config.put(URL, DataSourceUtils.getJdbcUrl(DbType.of(dataQualityTaskExecutionContext.getSourceType()),
|
||||
sourceDataSource));
|
||||
config.put(USER, sourceDataSource.getUser());
|
||||
config.put(PASSWORD, sourceDataSource.getPassword());
|
||||
config.put(PASSWORD, ParserUtils.encode(sourceDataSource.getPassword()));
|
||||
config.put(DRIVER, DataSourceUtils
|
||||
.getDatasourceDriver(DbType.of(dataQualityTaskExecutionContext.getSourceType())));
|
||||
String outputTable = sourceDataSource.getDatabase() + "_" + inputParameterValue.get(SRC_TABLE);
|
||||
@ -147,7 +148,7 @@ public class RuleParserUtils {
|
||||
config.put(URL, DataSourceUtils.getJdbcUrl(DbType.of(dataQualityTaskExecutionContext.getTargetType()),
|
||||
targetDataSource));
|
||||
config.put(USER, targetDataSource.getUser());
|
||||
config.put(PASSWORD, targetDataSource.getPassword());
|
||||
config.put(PASSWORD, ParserUtils.encode(targetDataSource.getPassword()));
|
||||
config.put(DRIVER, DataSourceUtils
|
||||
.getDatasourceDriver(DbType.of(dataQualityTaskExecutionContext.getTargetType())));
|
||||
String outputTable = targetDataSource.getDatabase() + "_" + inputParameterValue.get(TARGET_TABLE);
|
||||
@ -280,7 +281,7 @@ public class RuleParserUtils {
|
||||
config.put(URL, DataSourceUtils.getJdbcUrl(DbType.of(dataQualityTaskExecutionContext.getWriterType()),
|
||||
writerDataSource));
|
||||
config.put(USER, writerDataSource.getUser());
|
||||
config.put(PASSWORD, writerDataSource.getPassword());
|
||||
config.put(PASSWORD, ParserUtils.encode(writerDataSource.getPassword()));
|
||||
config.put(DRIVER, DataSourceUtils
|
||||
.getDatasourceDriver(DbType.of(dataQualityTaskExecutionContext.getWriterType())));
|
||||
config.put(SQL, sql);
|
||||
@ -350,7 +351,7 @@ public class RuleParserUtils {
|
||||
config.put(URL, DataSourceUtils.getJdbcUrl(
|
||||
DbType.of(dataQualityTaskExecutionContext.getStatisticsValueType()), writerDataSource));
|
||||
config.put(USER, writerDataSource.getUser());
|
||||
config.put(PASSWORD, writerDataSource.getPassword());
|
||||
config.put(PASSWORD, ParserUtils.encode(writerDataSource.getPassword()));
|
||||
config.put(DRIVER, DataSourceUtils
|
||||
.getDatasourceDriver(DbType.of(dataQualityTaskExecutionContext.getWriterType())));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user