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 2011/05/17 14:54:14 UTC
svn commit: r1104207 - in /httpcomponents/httpclient/trunk: RELEASE_NOTES.txt
httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Author: olegk
Date: Tue May 17 12:54:14 2011
New Revision: 1104207
URL: http://svn.apache.org/viewvc?rev=1104207&view=rev
Log:
HTTPCLIENT-1087: NTLM proxy authentication fails on retry if the underlying connection is closed as a result of a target authentication failure
Modified:
httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=1104207&r1=1104206&r2=1104207&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Tue May 17 12:54:14 2011
@@ -1,5 +1,9 @@
Changes since 4.1.1
+* [HTTPCLIENT-1087] NTLM proxy authentication fails on retry if the underlying connection is closed
+ as a result of a target authentication failure.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
* [HTTPCLIENT-1079] Fixed Kerberos cross-realm support
Contributed by Michael Osipov <1983-01-06 at gmx.net>
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=1104207&r1=1104206&r2=1104207&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java Tue May 17 12:54:14 2011
@@ -492,6 +492,8 @@ public class DefaultRequestDirector impl
managedConn.markReusable();
} else {
managedConn.close();
+ invalidateAuthIfSuccessful(this.proxyAuthState);
+ invalidateAuthIfSuccessful(this.targetAuthState);
}
// check if we can use the same connection for the followup
if (!followup.getRoute().equals(roureq.getRoute())) {
@@ -1232,4 +1234,14 @@ public class DefaultRequestDirector impl
authState.setCredentials(creds);
}
+ private void invalidateAuthIfSuccessful(final AuthState authState) {
+ AuthScheme authscheme = authState.getAuthScheme();
+ if (authscheme != null
+ && authscheme.isConnectionBased()
+ && authscheme.isComplete()
+ && authState.getCredentials() != null) {
+ authState.invalidate();
+ }
+ }
+
} // class DefaultClientRequestDirector