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 C20799B14 for ; Fri, 9 Mar 2012 20:42:54 +0000 (UTC) Received: (qmail 39740 invoked by uid 500); 9 Mar 2012 20:42:54 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 39705 invoked by uid 500); 9 Mar 2012 20:42:54 -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 39698 invoked by uid 99); 9 Mar 2012 20:42:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Mar 2012 20:42:54 +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; Fri, 09 Mar 2012 20:42:53 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 11840238890A for ; Fri, 9 Mar 2012 20:42:33 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1299041 - in /httpcomponents/httpclient/trunk: fluent-hc/src/main/java/org/apache/http/client/fluent/Executor.java httpclient/src/main/java/org/apache/http/conn/ssl/SSLSocketFactory.java Date: Fri, 09 Mar 2012 20:42:32 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120309204233.11840238890A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olegk Date: Fri Mar 9 20:42:32 2012 New Revision: 1299041 URL: http://svn.apache.org/viewvc?rev=1299041&view=rev Log: Better SSL initialization for fluent Executor Modified: httpcomponents/httpclient/trunk/fluent-hc/src/main/java/org/apache/http/client/fluent/Executor.java httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/ssl/SSLSocketFactory.java Modified: httpcomponents/httpclient/trunk/fluent-hc/src/main/java/org/apache/http/client/fluent/Executor.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/fluent-hc/src/main/java/org/apache/http/client/fluent/Executor.java?rev=1299041&r1=1299040&r2=1299041&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/fluent-hc/src/main/java/org/apache/http/client/fluent/Executor.java (original) +++ httpcomponents/httpclient/trunk/fluent-hc/src/main/java/org/apache/http/client/fluent/Executor.java Fri Mar 9 20:42:32 2012 @@ -27,6 +27,10 @@ package org.apache.http.client.fluent; import java.io.IOException; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; + +import javax.net.ssl.SSLContext; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; @@ -41,28 +45,44 @@ import org.apache.http.client.Credential import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.protocol.ClientContext; +import org.apache.http.conn.scheme.PlainSocketFactory; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.scheme.SchemeSocketFactory; import org.apache.http.conn.ssl.SSLInitializationException; +import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.auth.BasicScheme; import org.apache.http.impl.client.BasicAuthCache; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.PoolingClientConnectionManager; -import org.apache.http.impl.conn.SchemeRegistryFactory; import org.apache.http.protocol.BasicHttpContext; public class Executor { final static PoolingClientConnectionManager CONNMGR; final static DefaultHttpClient CLIENT; - + static { - SchemeRegistry schemeRegistry; + SchemeRegistry schemeRegistry = new SchemeRegistry(); + SchemeSocketFactory plain = PlainSocketFactory.getSocketFactory(); + schemeRegistry.register(new Scheme("http", 80, plain)); + SchemeSocketFactory ssl = null; try { - schemeRegistry = SchemeRegistryFactory.createSystemDefault(); + ssl = SSLSocketFactory.getSystemSocketFactory(); } catch (SSLInitializationException ex) { - schemeRegistry = SchemeRegistryFactory.createDefault(); + SSLContext sslcontext; + try { + sslcontext = SSLContext.getInstance(SSLSocketFactory.TLS); + sslcontext.init(null, null, null); + ssl = new SSLSocketFactory(sslcontext); + } catch (SecurityException ignore) { + } catch (KeyManagementException ignore) { + } catch (NoSuchAlgorithmException ignore) { + } + } + if (ssl != null) { + schemeRegistry.register(new Scheme("https", 443, ssl)); } CONNMGR = new PoolingClientConnectionManager(schemeRegistry); CONNMGR.setDefaultMaxPerRoute(100); Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/ssl/SSLSocketFactory.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/ssl/SSLSocketFactory.java?rev=1299041&r1=1299040&r2=1299041&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/ssl/SSLSocketFactory.java (original) +++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/conn/ssl/SSLSocketFactory.java Fri Mar 9 20:42:32 2012 @@ -171,7 +171,7 @@ public class SSLSocketFactory implements * * @return the default SSL socket factory */ - public static SSLSocketFactory getSocketFactory() { + public static SSLSocketFactory getSocketFactory() throws SSLInitializationException { return new SSLSocketFactory(createDefaultSSLContext()); } @@ -200,7 +200,7 @@ public class SSLSocketFactory implements * * @return the system SSL socket factory */ - public static SSLSocketFactory getSystemSocketFactory() { + public static SSLSocketFactory getSystemSocketFactory() throws SSLInitializationException { return new SSLSocketFactory(createSystemSSLContext()); } @@ -353,7 +353,7 @@ public class SSLSocketFactory implements return sslcontext; } - private static SSLContext createDefaultSSLContext() { + private static SSLContext createDefaultSSLContext() throws SSLInitializationException { try { return createSSLContext(TLS, null, null, null, null, null); } catch (Exception ex) { @@ -361,7 +361,7 @@ public class SSLSocketFactory implements } } - private static SSLContext createSystemSSLContext() { + private static SSLContext createSystemSSLContext() throws SSLInitializationException { try { return createSystemSSLContext(TLS, null); } catch (Exception ex) {