Browse Source

HADOOP-16031. Fixed TestSecureLogins unit test. Contributed by Akira Ajisaka

Eric Yang 6 năm trước cách đây
mục cha
commit
802932ca0b

+ 10 - 3
hadoop-common-project/hadoop-registry/src/test/java/org/apache/hadoop/registry/secure/TestSecureLogins.java

@@ -43,6 +43,10 @@ import org.apache.hadoop.security.authentication.util.KerberosName;
 import org.apache.hadoop.security.authentication.util.KerberosUtil;
 import org.apache.hadoop.registry.client.impl.zk.RegistrySecurity;
 import org.apache.hadoop.registry.client.impl.zk.ZookeeperConfigOptions;
+
+import static org.apache.hadoop.security.authentication.util.KerberosName.DEFAULT_MECHANISM;
+import static org.apache.hadoop.security.authentication.util.KerberosName.MECHANISM_HADOOP;
+import static org.apache.hadoop.security.authentication.util.KerberosName.MECHANISM_MIT;
 import static org.apache.hadoop.util.PlatformName.IBM_JAVA;
 
 import org.junit.Test;
@@ -198,12 +202,15 @@ public class TestSecureLogins extends AbstractSecureRegistryTest {
 
   @Test
   public void testValidKerberosName() throws Throwable {
-
+    KerberosName.setRuleMechanism(MECHANISM_HADOOP);
+    new HadoopKerberosName(ZOOKEEPER).getShortName();
+    // MECHANISM_MIT allows '/' and '@' in username
+    KerberosName.setRuleMechanism(MECHANISM_MIT);
     new HadoopKerberosName(ZOOKEEPER).getShortName();
     new HadoopKerberosName(ZOOKEEPER_LOCALHOST).getShortName();
     new HadoopKerberosName(ZOOKEEPER_REALM).getShortName();
-    // standard rules don't pick this up
-    // new HadoopKerberosName(ZOOKEEPER_LOCALHOST_REALM).getShortName();
+    new HadoopKerberosName(ZOOKEEPER_LOCALHOST_REALM).getShortName();
+    KerberosName.setRuleMechanism(DEFAULT_MECHANISM);
   }
 
   @Test