|
@@ -76,6 +76,8 @@ public class TestRMWebServicesDelegationTokenAuthentication {
|
|
|
TestRMWebServicesDelegationTokenAuthentication.class.getName() + "-root");
|
|
|
private static File httpSpnegoKeytabFile = new File(
|
|
|
KerberosTestUtils.getKeytabFile());
|
|
|
+ private static final String SUN_SECURITY_KRB5_RCACHE_KEY =
|
|
|
+ "sun.security.krb5.rcache";
|
|
|
|
|
|
private static String httpSpnegoPrincipal = KerberosTestUtils
|
|
|
.getServerPrincipal();
|
|
@@ -83,7 +85,7 @@ public class TestRMWebServicesDelegationTokenAuthentication {
|
|
|
private static boolean miniKDCStarted = false;
|
|
|
private static MiniKdc testMiniKDC;
|
|
|
private static MockRM rm;
|
|
|
-
|
|
|
+ private static String sunSecurityKrb5RcacheValue;
|
|
|
|
|
|
String delegationTokenHeader;
|
|
|
|
|
@@ -98,6 +100,11 @@ public class TestRMWebServicesDelegationTokenAuthentication {
|
|
|
@BeforeClass
|
|
|
public static void setUp() {
|
|
|
try {
|
|
|
+ // Disabling kerberos replay cache to avoid "Request is a replay" errors
|
|
|
+ // caused by frequent webservice calls
|
|
|
+ sunSecurityKrb5RcacheValue =
|
|
|
+ System.getProperty(SUN_SECURITY_KRB5_RCACHE_KEY);
|
|
|
+ System.setProperty(SUN_SECURITY_KRB5_RCACHE_KEY, "none");
|
|
|
testMiniKDC = new MiniKdc(MiniKdc.createConf(), testRootDir);
|
|
|
setupKDC();
|
|
|
setupAndStartRM();
|
|
@@ -114,6 +121,12 @@ public class TestRMWebServicesDelegationTokenAuthentication {
|
|
|
if (rm != null) {
|
|
|
rm.stop();
|
|
|
}
|
|
|
+ if (sunSecurityKrb5RcacheValue == null) {
|
|
|
+ System.clearProperty(SUN_SECURITY_KRB5_RCACHE_KEY);
|
|
|
+ } else {
|
|
|
+ System.setProperty(SUN_SECURITY_KRB5_RCACHE_KEY,
|
|
|
+ sunSecurityKrb5RcacheValue);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Parameterized.Parameters
|