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 84a6afb3892ac98f6a5fdfc1f07d39f6d3af4760
Author: jlf <longfei.ji...@kyligence.io>
AuthorDate: Fri May 5 19:20:33 2023 +0800

    KYLIN-5639 fix FI start error
---
 .../kylin/tool/kerberos/KerberosLoginUtil.java     | 12 ++++-----
 .../kylin/tool/kerberos/KerberosLoginUtilTest.java | 30 +++++++++++++++++++---
 2 files changed, 31 insertions(+), 11 deletions(-)

diff --git 
a/src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java 
b/src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java
index 1272ebc777..837dcd2484 100644
--- 
a/src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java
+++ 
b/src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java
@@ -30,6 +30,7 @@ import java.util.Map;
 
 import javax.security.auth.login.AppConfigurationEntry;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.security.authentication.util.KerberosUtil;
@@ -203,12 +204,9 @@ public class KerberosLoginUtil {
     }
 
     public static void setJaasConf(String loginContextName, String principal, 
String keytabFile) throws IOException {
-        Preconditions.checkArgument((loginContextName == null) || 
(loginContextName.length() <= 0),
-                "input loginContextName is invalid.");
-        Preconditions.checkArgument((principal == null) || (principal.length() 
<= 0),
-                "input principal is invalid.");
-        Preconditions.checkArgument((keytabFile == null) || 
(keytabFile.length() <= 0),
-                "input keytabFile is invalid.");
+        Preconditions.checkArgument(StringUtils.isNotEmpty(loginContextName), 
"input loginContextName is invalid.");
+        Preconditions.checkArgument(StringUtils.isNotEmpty(principal), "input 
principal is invalid.");
+        Preconditions.checkArgument(StringUtils.isNotEmpty(keytabFile), "input 
keytabFile is invalid.");
 
         File userKeytabFile = new File(keytabFile);
         if (!userKeytabFile.exists()) {
@@ -271,11 +269,11 @@ public class KerberosLoginUtil {
     public static void setZookeeperServerPrincipal(String zkServerPrincipal) 
throws IOException {
         setZookeeperServerPrincipal(ZOOKEEPER_SERVER_PRINCIPAL_KEY, 
zkServerPrincipal);
     }
+
     public static void setKrb5Config(String krb5ConfFile) throws IOException {
         setZookeeperServerPrincipal(JAVA_SECURITY_KRB5_CONF_KEY, krb5ConfFile);
     }
 
-
     public static void setZookeeperServerPrincipal(String 
zkServerPrincipalKey, String zkServerPrincipal)
             throws IOException {
         Unsafe.setProperty(zkServerPrincipalKey, zkServerPrincipal);
diff --git 
a/src/tool/src/test/java/org/apache/kylin/tool/kerberos/KerberosLoginUtilTest.java
 
b/src/tool/src/test/java/org/apache/kylin/tool/kerberos/KerberosLoginUtilTest.java
index 2c6c949f14..19434025d9 100644
--- 
a/src/tool/src/test/java/org/apache/kylin/tool/kerberos/KerberosLoginUtilTest.java
+++ 
b/src/tool/src/test/java/org/apache/kylin/tool/kerberos/KerberosLoginUtilTest.java
@@ -17,12 +17,14 @@
  */
 package org.apache.kylin.tool.kerberos;
 
+import static org.junit.Assert.fail;
+
 import org.junit.Assert;
 import org.junit.Test;
 
 public class KerberosLoginUtilTest {
-    private String validKeyTab = "src/test/resources/kerberos/valid.keytab";
-    private String invalidKeyTab = 
"src/test/resources/kerberos/invalid.keytab";
+    private static final String validKeyTab = 
"src/test/resources/kerberos/valid.keytab";
+    private static final String invalidKeyTab = 
"src/test/resources/kerberos/invalid.keytab";
 
     @Test
     public void checkKeyTabIsValid() {
@@ -31,7 +33,7 @@ public class KerberosLoginUtilTest {
 
     @Test
     public void checkKeyTabIsInvalid() {
-        
Assert.assertTrue(!KerberosLoginUtil.checkKeyTabIsValid(invalidKeyTab));
+        
Assert.assertFalse(KerberosLoginUtil.checkKeyTabIsValid(invalidKeyTab));
     }
 
     @Test
@@ -41,6 +43,26 @@ public class KerberosLoginUtilTest {
 
     @Test
     public void checkKeyTabIsMissing() {
-        Assert.assertTrue(!KerberosLoginUtil.checkKeyTabIsExist(invalidKeyTab 
+ "x"));
+        Assert.assertFalse(KerberosLoginUtil.checkKeyTabIsExist(invalidKeyTab 
+ "x"));
+    }
+
+    @Test
+    public void testSetJaasConfCheck() {
+        testSetJaasConfCheck(null, null, null, "input loginContextName is 
invalid.");
+        testSetJaasConfCheck("", null, null, "input loginContextName is 
invalid.");
+        testSetJaasConfCheck("Client", null, null, "input principal is 
invalid.");
+        testSetJaasConfCheck("Client", "", null, "input principal is 
invalid.");
+        testSetJaasConfCheck("Client", "test", null, "input keytabFile is 
invalid.");
+        testSetJaasConfCheck("Client", "test", "", "input keytabFile is 
invalid.");
+    }
+
+    void testSetJaasConfCheck(String loginContextName, String principal, 
String keytabFile, String message) {
+        try {
+            KerberosLoginUtil.setJaasConf(loginContextName, principal, 
keytabFile);
+            fail();
+        } catch (Exception e) {
+            Assert.assertTrue(e instanceof IllegalArgumentException);
+            Assert.assertEquals(String.valueOf(message), e.getMessage());
+        }
     }
 }

Reply via email to