This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git
commit c0b66e0eabeb4b09fb8b5ce13e82c12bc599e73c Author: Hang Jia <754332...@qq.com> AuthorDate: Fri Mar 17 10:05:04 2023 +0800 KYLIN-5569 Support manually setting SSH encrypted password in Job multi-live mode --- .../java/org/apache/kylin/common/KylinConfigBase.java | 2 +- .../org/apache/kylin/common/KylinConfigBaseTest.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java index dd98c34d40..483de79997 100644 --- a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java +++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java @@ -1079,7 +1079,7 @@ public abstract class KylinConfigBase implements Serializable { } public String getRemoteSSHPassword() { - return getOptional("kylin.job.ssh-password"); + return EncryptUtil.getDecryptedValue(getOptional("kylin.job.ssh-password")); } public String getCliWorkingDir() { diff --git a/src/core-common/src/test/java/org/apache/kylin/common/KylinConfigBaseTest.java b/src/core-common/src/test/java/org/apache/kylin/common/KylinConfigBaseTest.java index 9120cfd117..6ccb400ded 100644 --- a/src/core-common/src/test/java/org/apache/kylin/common/KylinConfigBaseTest.java +++ b/src/core-common/src/test/java/org/apache/kylin/common/KylinConfigBaseTest.java @@ -64,6 +64,7 @@ import java.util.concurrent.TimeUnit; import org.apache.hadoop.fs.Path; import org.apache.hadoop.util.Shell; import org.apache.kylin.common.constant.NonCustomProjectLevelConfig; +import org.apache.kylin.common.util.EncryptUtil; import org.apache.kylin.common.util.ProcessUtils; import org.apache.kylin.common.util.TimeZoneUtils; import org.apache.kylin.junit.annotation.MetadataInfo; @@ -1436,6 +1437,22 @@ class KylinConfigBaseTest { config.setProperty("kylin.query.max-measure-segment-pruner-before-days", "1"); assertEquals(1, config.getMaxMeasureSegmentPrunerBeforeDays()); } + + @Test + void testRemoteSSHPassword() { + KylinConfig config = KylinConfig.getInstanceFromEnv(); + + String password = "hadoop"; + String encPassword = "ENC('KotkDR//FvNP+8x+G5G93g==')"; + assertEquals(encPassword, EncryptUtil.encryptWithPrefix(password)); + + config.setProperty("kylin.job.ssh-password", password); + assertEquals(password, config.getRemoteSSHPassword()); + + config.setProperty("kylin.job.ssh-password", encPassword); + assertEquals(password, config.getRemoteSSHPassword()); + } + } class EnvironmentUpdateUtils {