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 2009/06/29 20:43:52 UTC

svn commit: r789408 - in /httpcomponents/httpclient/trunk: RELEASE_NOTES.txt httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java

Author: olegk
Date: Mon Jun 29 18:43:51 2009
New Revision: 789408

URL: http://svn.apache.org/viewvc?rev=789408&view=rev
Log:
HTTPCLIENT-856: Proxy NTLM authentication no longer fails on a redirect to a different host

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=789408&r1=789407&r2=789408&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Mon Jun 29 18:43:51 2009
@@ -1,8 +1,12 @@
 Changes since 4.0 beta 2
 -------------------
 
+* [HTTPCLIENT-856] Proxy NTLM authentication no longer fails on a redirect to
+  a different host.
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
 * [HTTPCLIENT-841] Removed automatic connection release using garbage collection 
-  due to a memory leak
+  due to a memory leak.
   Contributed by Oleg Kalnichevski <olegk at apache.org>
 
 * [HTTPCLIENT-853] Fixed bug causing invalid cookie origin port to be selected 

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=789408&r1=789407&r2=789408&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 Mon Jun 29 18:43:51 2009
@@ -925,7 +925,6 @@
         throws HttpException, IOException {
 
         HttpRoute route = roureq.getRoute();
-        HttpHost proxy = route.getProxyHost();
         RequestWrapper request = roureq.getRequest();
         
         HttpParams params = request.getParams();
@@ -948,6 +947,14 @@
                     uri.getPort(),
                     uri.getScheme());
             
+            if (!route.getTargetHost().equals(newTarget)) {
+                targetAuthState.invalidate();
+                AuthScheme authScheme = proxyAuthState.getAuthScheme();
+                if (authScheme != null && authScheme.isConnectionBased()) {
+                    proxyAuthState.invalidate();
+                }
+            }
+            
             HttpGet redirect = new HttpGet(uri);
             
             HttpRequest orig = request.getOriginal();
@@ -1007,6 +1014,8 @@
             
             if (this.proxyAuthHandler.isAuthenticationRequested(response, context)) {
 
+                HttpHost proxy = route.getProxyHost();
+                
                 this.log.debug("Proxy requested authentication");
                 Map<String, Header> challenges = this.proxyAuthHandler.getChallenges(
                         response, context);