|
@@ -57,7 +57,7 @@ public class AuthToLocalBuilderTest {
|
|
|
|
|
|
@Test
|
|
|
public void testRuleGeneration_caseInsensitiveSupport() {
|
|
|
- AuthToLocalBuilder builder = new AuthToLocalBuilder(true);
|
|
|
+ AuthToLocalBuilder builder = new AuthToLocalBuilder(true, null);
|
|
|
|
|
|
builder.addRule("nn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
// Duplicate principal for secondary namenode, should be filtered out...
|
|
@@ -312,4 +312,87 @@ public class AuthToLocalBuilderTest {
|
|
|
assertEquals(copy.generate("EXAMPLE.COM"), builder.generate("EXAMPLE.COM"));
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAdditionalRealms() {
|
|
|
+ AuthToLocalBuilder builder = new AuthToLocalBuilder(false, "REALM2,REALM3, REALM1 ");
|
|
|
+
|
|
|
+ builder.addRules(
|
|
|
+ "RULE:[1:$1@$0](.*@FOOBAR.COM)s/@.*//\n" +
|
|
|
+ "DEFAULT");
|
|
|
+
|
|
|
+ builder.addRule("nn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("dn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("jn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("rm/_HOST@EXAMPLE.COM", "yarn");
|
|
|
+ builder.addRule("jhs/_HOST@EXAMPLE.COM", "mapred");
|
|
|
+ builder.addRule("hm/_HOST@EXAMPLE.COM", "hbase");
|
|
|
+ builder.addRule("rs/_HOST@EXAMPLE.COM", "hbase");
|
|
|
+
|
|
|
+ assertEquals(
|
|
|
+ "RULE:[1:$1@$0](.*@FOOBAR.COM)s/@.*//\n" +
|
|
|
+ "RULE:[1:$1@$0](.*@EXAMPLE.COM)s/@.*//\n" +
|
|
|
+ "RULE:[1:$1@$0](.*@REALM2)s/@.*//\n" +
|
|
|
+ "RULE:[1:$1@$0](.*@REALM1)s/@.*//\n" +
|
|
|
+ "RULE:[1:$1@$0](.*@REALM3)s/@.*//\n" +
|
|
|
+ "RULE:[2:$1@$0](dn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](hm@EXAMPLE.COM)s/.*/hbase/\n" +
|
|
|
+ "RULE:[2:$1@$0](jhs@EXAMPLE.COM)s/.*/mapred/\n" +
|
|
|
+ "RULE:[2:$1@$0](jn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](nn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](rm@EXAMPLE.COM)s/.*/yarn/\n" +
|
|
|
+ "RULE:[2:$1@$0](rs@EXAMPLE.COM)s/.*/hbase/\n" +
|
|
|
+ "DEFAULT",
|
|
|
+ builder.generate("EXAMPLE.COM"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAdditionalRealms_Null() {
|
|
|
+ AuthToLocalBuilder builder = new AuthToLocalBuilder(false, null);
|
|
|
+
|
|
|
+ builder.addRule("nn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("dn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("jn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("rm/_HOST@EXAMPLE.COM", "yarn");
|
|
|
+ builder.addRule("jhs/_HOST@EXAMPLE.COM", "mapred");
|
|
|
+ builder.addRule("hm/_HOST@EXAMPLE.COM", "hbase");
|
|
|
+ builder.addRule("rs/_HOST@EXAMPLE.COM", "hbase");
|
|
|
+
|
|
|
+ assertEquals(
|
|
|
+ "RULE:[1:$1@$0](.*@EXAMPLE.COM)s/@.*//\n" +
|
|
|
+ "RULE:[2:$1@$0](dn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](hm@EXAMPLE.COM)s/.*/hbase/\n" +
|
|
|
+ "RULE:[2:$1@$0](jhs@EXAMPLE.COM)s/.*/mapred/\n" +
|
|
|
+ "RULE:[2:$1@$0](jn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](nn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](rm@EXAMPLE.COM)s/.*/yarn/\n" +
|
|
|
+ "RULE:[2:$1@$0](rs@EXAMPLE.COM)s/.*/hbase/\n" +
|
|
|
+ "DEFAULT",
|
|
|
+ builder.generate("EXAMPLE.COM"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAdditionalRealms_Empty() {
|
|
|
+ AuthToLocalBuilder builder = new AuthToLocalBuilder(false, "");
|
|
|
+
|
|
|
+ builder.addRule("nn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("dn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("jn/_HOST@EXAMPLE.COM", "hdfs");
|
|
|
+ builder.addRule("rm/_HOST@EXAMPLE.COM", "yarn");
|
|
|
+ builder.addRule("jhs/_HOST@EXAMPLE.COM", "mapred");
|
|
|
+ builder.addRule("hm/_HOST@EXAMPLE.COM", "hbase");
|
|
|
+ builder.addRule("rs/_HOST@EXAMPLE.COM", "hbase");
|
|
|
+
|
|
|
+ assertEquals(
|
|
|
+ "RULE:[1:$1@$0](.*@EXAMPLE.COM)s/@.*//\n" +
|
|
|
+ "RULE:[2:$1@$0](dn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](hm@EXAMPLE.COM)s/.*/hbase/\n" +
|
|
|
+ "RULE:[2:$1@$0](jhs@EXAMPLE.COM)s/.*/mapred/\n" +
|
|
|
+ "RULE:[2:$1@$0](jn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](nn@EXAMPLE.COM)s/.*/hdfs/\n" +
|
|
|
+ "RULE:[2:$1@$0](rm@EXAMPLE.COM)s/.*/yarn/\n" +
|
|
|
+ "RULE:[2:$1@$0](rs@EXAMPLE.COM)s/.*/hbase/\n" +
|
|
|
+ "DEFAULT",
|
|
|
+ builder.generate("EXAMPLE.COM"));
|
|
|
+ }
|
|
|
}
|