diff --git a/hadoop-common-project/hadoop-registry/src/test/java/org/apache/hadoop/registry/secure/TestSecureLogins.java b/hadoop-common-project/hadoop-registry/src/test/java/org/apache/hadoop/registry/secure/TestSecureLogins.java index ee15c0a4c1..1cdc47d562 100644 --- a/hadoop-common-project/hadoop-registry/src/test/java/org/apache/hadoop/registry/secure/TestSecureLogins.java +++ b/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.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 void testKerberosRulesValid() throws Throwable { @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