Here is my patch merged in a forked trunk branch : https://github.com/xeronix/httpclient/commit/8f88ec4c58a3d0a72e25af43809698aaf1ccf193
I have tested the patch over 4.3.5 source code and it works fine. With jar build from Trunk branch i am getting some exception which is not related to the patch: Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.impl.conn.CPool.setValidateAfterInactivity(I)V at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:176) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:158) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:838) Snippet to set GSSCredential for SPNEGO-KERBEROS Authentication : //gssCredential is the GSSCredential Object KerberosCredentials kerebrosCredential = new KerberosCredentials(gssCredential); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(new AuthScope(null, -1, null), kerebrosCredential); Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder .<AuthSchemeProvider> create().register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory()).build(); //Use this authSchemeRegistry for HttpClient. On Wed, Sep 3, 2014 at 9:06 PM, Oleg Kalnichevski <ol...@apache.org> wrote: > On Wed, 2014-09-03 at 14:40 +0530, Vipul Mehta wrote: > > Hi, > > > > In my scenario i am getting delegated GSSCredential of a user from some > > other client and i want to use it to create context and authenticate with > > windows ADFS. > > > > The createContext call in > > *org.apache.http.impl.auth.GGSSchemeBase.generateGSSToken()* relies on > JAAS > > configuration for getting credentials and hence null is passed to it in > > credential field. > > > > protected byte[] generateGSSToken( > > > final byte[] input, final Oid oid, final String authServer) > > > throws GSSException { > > > byte[] token = input; > > > if (token == null) { > > > token = new byte[0]; > > > } > > > final GSSManager manager = getManager(); > > > final GSSName serverName = manager.createName("HTTP@" + > > > authServer, GSSName.NT_HOSTBASED_SERVICE); > > > > > > * final GSSContext gssContext = manager.createContext( > > > serverName.canonicalize(oid), oid, null, GSSContext.DEFAULT_LIFETIME);* > > > gssContext.requestMutualAuth(true); > > > gssContext.requestCredDeleg(true); > > > return gssContext.initSecContext(token, 0, token.length); > > > } > > > > > > > I want to pass the GSSCredential in this createContext call. Is there any > > way i can achieve it without changing httpclient code ? > > > > > > No, there is not. However, I'll happily commit a patch fixing the > problem if you feel like contributing one. > > Oleg > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org > For additional commands, e-mail: httpclient-users-h...@hc.apache.org > > -- Regards, Vipul