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);


Reply via email to