You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/04/15 12:11:07 UTC

svn commit: r1467925 - in /httpcomponents/httpclient/branches/4.2.x: RELEASE_NOTES.txt httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java httpclient/src/main/java/org/apache/http/impl/client/HttpAuthenticator.java

Author: olegk
Date: Mon Apr 15 10:11:07 2013
New Revision: 1467925

URL: http://svn.apache.org/r1467925
Log:
HTTPCLIENT-1338: (regression) Invalidated / stale DIGEST schemes do not get evicted from the auth cache

Modified:
    httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt
    httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
    httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/HttpAuthenticator.java

Modified: httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt?rev=1467925&r1=1467924&r2=1467925&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt Mon Apr 15 10:11:07 2013
@@ -1,8 +1,13 @@
 Changes since Release 4.2.4
 -------------------
 
+* [HTTPCLIENT-1338] (regression) Invalidated / stale DIGEST schemes do not get evicted from
+  the auth cache. 
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
 * [HTTPCLIENT-1340] Connection re-used in a inconsistent state despite presence of 
   'Connection: close' response header immediately after a successful authentication exchange. 
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
 
 Release 4.2.4

Modified: httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java?rev=1467925&r1=1467924&r2=1467925&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java (original)
+++ httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/auth/DigestScheme.java Mon Apr 15 10:11:07 2013
@@ -480,4 +480,14 @@ public class DigestScheme extends RFC261
         return encode(tmp);
     }
 
+    @Override
+    public String toString() {
+        StringBuilder builder = new StringBuilder();
+        builder.append("DIGEST [complete=").append(complete)
+                .append(", nonce=").append(lastNonce)
+                .append(", nc=").append(nounceCount)
+                .append("]");
+        return builder.toString();
+    }
+
 }

Modified: httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/HttpAuthenticator.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/HttpAuthenticator.java?rev=1467925&r1=1467924&r2=1467925&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/HttpAuthenticator.java (original)
+++ httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/HttpAuthenticator.java Mon Apr 15 10:11:07 2013
@@ -64,6 +64,9 @@ public class HttpAuthenticator {
             final AuthState authState,
             final HttpContext context) {
         if (authStrategy.isAuthenticationRequested(host, response, context)) {
+            if (authState.getState() == AuthProtocolState.SUCCESS) {
+                authStrategy.authFailed(host, authState.getAuthScheme(), context);
+            }
             this.log.debug("Authentication required");
             return true;
         } else {