Index: httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java =================================================================== --- httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java (revision 787160) +++ httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java (working copy) @@ -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,16 @@ uri.getPort(), uri.getScheme()); + if (!route.getTargetHost().equals(newTarget)) { + targetAuthState.invalidate(); + if (route.isTunnelled()) { + AuthScheme authScheme = proxyAuthState.getAuthScheme(); + if (authScheme != null && authScheme.isConnectionBased()) { + proxyAuthState.invalidate(); + } + } + } + HttpGet redirect = new HttpGet(uri); HttpRequest orig = request.getOriginal(); @@ -1007,6 +1016,8 @@ if (this.proxyAuthHandler.isAuthenticationRequested(response, context)) { + HttpHost proxy = route.getProxyHost(); + this.log.debug("Proxy requested authentication"); Map challenges = this.proxyAuthHandler.getChallenges( response, context);