From cd3c6765c2e4269b21db5d994e8ebd268cc3bf19 Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Tue, 14 Oct 2014 10:08:32 +0800 Subject: [PATCH] 8044215: Unable to initiate SpNego using a S4U2Proxy GSSCredential (Krb5ProxyCredential) Reviewed-by: mullan --- .../share/classes/sun/security/jgss/krb5/Krb5Context.java | 7 +++++-- jdk/test/sun/security/krb5/auto/S4U2proxy.java | 6 +++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java index 8b1c6def532..4b7b0eeb367 100644 --- a/jdk/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java +++ b/jdk/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java @@ -244,8 +244,11 @@ class Krb5Context implements GSSContextSpi { * establishment. */ public final void requestCredDeleg(boolean value) throws GSSException { - if (state == STATE_NEW && isInitiator()) - credDelegState = value; + if (state == STATE_NEW && isInitiator()) { + if (myCred == null || !(myCred instanceof Krb5ProxyCredential)) { + credDelegState = value; + } + } } /** diff --git a/jdk/test/sun/security/krb5/auto/S4U2proxy.java b/jdk/test/sun/security/krb5/auto/S4U2proxy.java index dd7d50c3892..10e565279f0 100644 --- a/jdk/test/sun/security/krb5/auto/S4U2proxy.java +++ b/jdk/test/sun/security/krb5/auto/S4U2proxy.java @@ -23,7 +23,7 @@ /* * @test - * @bug 6355584 + * @bug 6355584 8044215 * @summary Introduce constrained Kerberos delegation * @compile -XDignore.symbol.file S4U2proxy.java * @run main/othervm S4U2proxy krb5 @@ -69,6 +69,10 @@ public class S4U2proxy { Context p = s.delegated(); p.startAsClient(OneKDC.BACKEND, mech); + + // 8044215: requestCredDeleg is useless and harmless + p.x().requestCredDeleg(true); + b.startAsServer(mech); Context.handshake(p, b);