Browse Source

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

(cherry picked from commit bba76b6f31d5452fe048dcc6853c12a1894024fe)
(cherry picked from commit a446949f568ed0269741f258bb50b3b4f95db142)
Eric Yang 6 years ago
parent
commit
7e73321f9e

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

@@ -42,6 +42,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;
@@ -195,12 +199,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