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 {

Reply via email to