FALCON-690: kinit with realm in order to support deployments with cross domain trust. Contributed by Arpit Gupta
diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/enumsAndConstants/MerlinConstants.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/enumsAndConstants/MerlinConstants.java
index edd75ed..3a56530 100644
--- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/enumsAndConstants/MerlinConstants.java
+++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/enumsAndConstants/MerlinConstants.java
@@ -46,6 +46,7 @@
private static HashMap<String, String> keyTabMap;
public static final String ACL_OWNER = Config.getProperty("ACL.OWNER", RequestKeys.CURRENT_USER);
public static final String ACL_GROUP = Config.getProperty("ACL.GROUP", "default");
+ public static final String USER_REALM = Config.getProperty("USER.REALM", "");
public static final boolean CLEAN_TEST_DIR =
Boolean.valueOf(Config.getProperty("clean_test_dir", "true"));
diff --git a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java
index 71d728e..3c666e7 100644
--- a/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java
+++ b/falcon-regression/merlin-core/src/main/java/org/apache/falcon/regression/core/util/KerberosHelper.java
@@ -41,7 +41,8 @@
user = MerlinConstants.CURRENT_USER_NAME;
}
final String keytab = MerlinConstants.getKeytabForUser(user);
- final String command = String.format("kinit -kt %s %s", keytab, user);
+ String principal = MerlinConstants.USER_REALM.isEmpty() ? user : user + '@' + MerlinConstants.USER_REALM;
+ final String command = String.format("kinit -kt %s %s", keytab, principal);
final int exitVal = ExecUtil.executeCommandGetExitCode(command);
Assert.assertEquals(exitVal, 0, "Switching Kerberos credential did not succeed.");
}