Author: pmouawad Date: Sun Feb 25 13:27:44 2018 New Revision: 1825303 URL: http://svn.apache.org/viewvc?rev=1825303&view=rev Log: Bug 61664 - HTTP Authorization Manager : Digest works only with legacy RFC 2069 , RFC 2617 is not implemented Fix Digest failure Bugzilla Id: 61664
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1825303&r1=1825302&r2=1825303&view=diff ============================================================================== --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java (original) +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java Sun Feb 25 13:27:44 2018 @@ -222,8 +222,7 @@ public class HTTPHC4Impl extends HTTPHCA Credentials credentials = null; HttpClientKey key = (HttpClientKey) localContext.getAttribute(CONTEXT_ATTRIBUTE_CLIENT_KEY); AuthScope authScope = null; - CredentialsProvider credentialsProvider = - (CredentialsProvider) context.getAttribute(HttpClientContext.CREDS_PROVIDER); + CredentialsProvider credentialsProvider = localContext.getCredentialsProvider(); if (key.hasProxy && !StringUtils.isEmpty(key.proxyUser)) { authScope = new AuthScope(key.proxyHost, key.proxyPort); credentials = credentialsProvider.getCredentials(authScope); @@ -255,8 +254,7 @@ public class HTTPHC4Impl extends HTTPHCA } Authorization authorization = authManager.getAuthForURL(url); - CredentialsProvider credentialsProvider = - (CredentialsProvider) context.getAttribute(HttpClientContext.CREDS_PROVIDER); + CredentialsProvider credentialsProvider = localContext.getCredentialsProvider(); if(authorization != null) { AuthCache authCache = localContext.getAuthCache(); if(authCache == null) { @@ -292,22 +290,22 @@ public class HTTPHC4Impl extends HTTPHCA BasicScheme basicAuth = new BasicScheme(); authCache.put(targetHost, basicAuth); } else if (authorization.getMechanism() == Mechanism.DIGEST) { - DigestScheme digestAuth = (DigestScheme) authCache.get(targetHost); - if(digestAuth == null) { - digestAuth = new DigestScheme(); - } JMeterVariables vars = JMeterContextService.getContext().getVariables(); DigestParameters digestParameters = (DigestParameters) vars.getObject(DIGEST_PARAMETERS); - digestAuth.overrideParamter("realm", authScope.getRealm()); if(digestParameters!=null) { + DigestScheme digestAuth = (DigestScheme) authCache.get(targetHost); + if(digestAuth == null) { + digestAuth = new DigestScheme(); + } + digestAuth.overrideParamter("realm", authScope.getRealm()); digestAuth.overrideParamter("algorithm", digestParameters.getAlgorithm()); digestAuth.overrideParamter("charset", digestParameters.getCharset()); digestAuth.overrideParamter("nonce", digestParameters.getNonce()); digestAuth.overrideParamter("opaque", digestParameters.getOpaque()); digestAuth.overrideParamter("qop", digestParameters.getQop()); + authCache.put(targetHost, digestAuth); } - authCache.put(targetHost, digestAuth); } else if (authorization.getMechanism() == Mechanism.KERBEROS) { KerberosScheme kerberosScheme = new KerberosScheme(); authCache.put(targetHost, kerberosScheme);