Return-Path: X-Original-To: apmail-hc-commits-archive@www.apache.org Delivered-To: apmail-hc-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6DBB6DB10 for ; Tue, 6 Nov 2012 19:53:27 +0000 (UTC) Received: (qmail 42802 invoked by uid 500); 6 Nov 2012 19:53:27 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 42773 invoked by uid 500); 6 Nov 2012 19:53:27 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 42765 invoked by uid 99); 6 Nov 2012 19:53:27 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Nov 2012 19:53:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Nov 2012 19:53:24 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 01A8223888CD for ; Tue, 6 Nov 2012 19:53:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1406286 - in /httpcomponents/httpclient/trunk: RELEASE_NOTES.txt httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java httpclient/src/main/java/org/apache/http/impl/client/builder/RedirectExec.java Date: Tue, 06 Nov 2012 19:53:02 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121106195303.01A8223888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olegk Date: Tue Nov 6 19:53:01 2012 New Revision: 1406286 URL: http://svn.apache.org/viewvc?rev=1406286&view=rev Log: HTTPCLIENT-1254: Redirect with underscore in hostname causes ProtocolException Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/builder/RedirectExec.java Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=1406286&r1=1406285&r2=1406286&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original) +++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Tue Nov 6 19:53:01 2012 @@ -1,7 +1,10 @@ Changes in trunk ------------------- -* [HTTPCLIENT-1255] AbstractVerifier incorrectly parses certificate CN containing wildcard +* [HTTPCLIENT-1254] Redirect with underscore in hostname causes ProtocolException. + Contributed by Oleg Kalnichevski + +* [HTTPCLIENT-1255] AbstractVerifier incorrectly parses certificate CN containing wildcard. Contributed by Oleg Kalnichevski * [HTTPCLIENT-1248] Default and lax redirect strategies should not convert requests redirected 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=1406286&r1=1406285&r2=1406286&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 Nov 6 19:53:01 2012 @@ -1100,15 +1100,11 @@ public class DefaultRequestDirector impl redirect.setHeaders(orig.getAllHeaders()); URI uri = redirect.getURI(); - if (uri.getHost() == null) { + HttpHost newTarget = URIUtils.extractHost(uri); + if (newTarget == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } - HttpHost newTarget = new HttpHost( - uri.getHost(), - uri.getPort(), - uri.getScheme()); - // Reset auth states if redirecting to another host if (!route.getTargetHost().equals(newTarget)) { this.log.debug("Resetting target auth state"); Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/builder/RedirectExec.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/builder/RedirectExec.java?rev=1406286&r1=1406285&r2=1406286&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/builder/RedirectExec.java (original) +++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/builder/RedirectExec.java Tue Nov 6 19:53:01 2012 @@ -46,6 +46,7 @@ import org.apache.http.client.methods.Ht import org.apache.http.client.params.ClientPNames; import org.apache.http.client.params.HttpClientParams; import org.apache.http.client.protocol.ClientContext; +import org.apache.http.client.utils.URIUtils; import org.apache.http.conn.routing.HttpRoute; import org.apache.http.conn.routing.HttpRoutePlanner; import org.apache.http.params.HttpParams; @@ -128,13 +129,12 @@ class RedirectExec implements ClientExec currentRequest.setParams(params); URI uri = currentRequest.getURI(); + HttpHost newTarget = URIUtils.extractHost(uri); if (uri.getHost() == null) { throw new ProtocolException("Redirect URI does not specify a valid host name: " + uri); } - HttpHost newTarget = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()); - // Reset virtual host and auth states if redirecting to another host if (!currentRoute.getTargetHost().equals(newTarget)) { AuthState targetAuthState = (AuthState) context.getAttribute(