Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E9220200C63 for ; Thu, 11 May 2017 20:17:38 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E814B160BCF; Thu, 11 May 2017 18:17:38 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 2288F160BC7 for ; Thu, 11 May 2017 20:17:37 +0200 (CEST) Received: (qmail 2224 invoked by uid 500); 11 May 2017 18:17:37 -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 1766 invoked by uid 99); 11 May 2017 18:17:37 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 May 2017 18:17:36 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 9F17CE968D; Thu, 11 May 2017 18:17:36 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: olegk@apache.org To: commits@hc.apache.org Date: Thu, 11 May 2017 18:17:59 -0000 Message-Id: <9a0f457c433040399d093d912e2813ae@git.apache.org> In-Reply-To: <00250a29f93f4df58aff0a555f785e06@git.apache.org> References: <00250a29f93f4df58aff0a555f785e06@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [24/42] httpcomponents-core git commit: [HTTPCORE-450] Add a Provider parameter in SSLContextBuilder. archived-at: Thu, 11 May 2017 18:17:39 -0000 [HTTPCORE-450] Add a Provider parameter in SSLContextBuilder. git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.4.x@1790053 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/15acf86a Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/15acf86a Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/15acf86a Branch: refs/heads/4.4.x Commit: 15acf86aa687b0bb28a83fb23f2a347a92ab3676 Parents: b0f9055 Author: Gary D. Gregory Authored: Mon Apr 3 22:13:57 2017 +0000 Committer: Oleg Kalnichevski Committed: Thu May 11 20:16:43 2017 +0200 ---------------------------------------------------------------------- RELEASE_NOTES.txt | 12 ++++++++++++ .../java/org/apache/http/ssl/SSLContextBuilder.java | 16 ++++++++++++++-- .../org/apache/http/ssl/TestSSLContextBuilder.java | 13 +++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/15acf86a/RELEASE_NOTES.txt ---------------------------------------------------------------------- diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index d4e9264..46173c4 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,3 +1,15 @@ +Release 4.4.7 +------------------- + +This is a maintenance release that fixes a number of issues discovered since 4.4.6. + +Changelog +------------------- + +* HTTPCORE-450: Add a Provider parameter in SSLContextBuilder. + Contributed by lujianbo <387852424 at qq dot com>, Gary Gregory + + Release 4.4.6 ------------------- http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/15acf86a/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java ---------------------------------------------------------------------- diff --git a/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java b/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java index 067a0c4..2fe30b9 100644 --- a/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java +++ b/httpcore/src/main/java/org/apache/http/ssl/SSLContextBuilder.java @@ -39,6 +39,7 @@ import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.Principal; import java.security.PrivateKey; +import java.security.Provider; import java.security.SecureRandom; import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; @@ -80,6 +81,7 @@ public class SSLContextBuilder { private final Set keymanagers; private final Set trustmanagers; private SecureRandom secureRandom; + private Provider provider; public static SSLContextBuilder create() { return new SSLContextBuilder(); @@ -101,6 +103,11 @@ public class SSLContextBuilder { return this; } + public SSLContextBuilder setProvider(final Provider provider) { + this.provider = provider; + return this; + } + public SSLContextBuilder loadTrustMaterial( final KeyStore truststore, final TrustStrategy trustStrategy) throws NoSuchAlgorithmException, KeyStoreException { @@ -266,8 +273,13 @@ public class SSLContextBuilder { } public SSLContext build() throws NoSuchAlgorithmException, KeyManagementException { - final SSLContext sslcontext = SSLContext.getInstance( - this.protocol != null ? this.protocol : TLS); + final SSLContext sslcontext; + final String protocolStr = this.protocol != null ? this.protocol : TLS; + if (this.provider != null) { + sslcontext = SSLContext.getInstance(protocolStr, this.provider); + } else { + sslcontext = SSLContext.getInstance(protocolStr); + } initSSLContext(sslcontext, keymanagers, trustmanagers, secureRandom); return sslcontext; } http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/15acf86a/httpcore/src/test/java/org/apache/http/ssl/TestSSLContextBuilder.java ---------------------------------------------------------------------- diff --git a/httpcore/src/test/java/org/apache/http/ssl/TestSSLContextBuilder.java b/httpcore/src/test/java/org/apache/http/ssl/TestSSLContextBuilder.java index 61992be..ae132f0 100644 --- a/httpcore/src/test/java/org/apache/http/ssl/TestSSLContextBuilder.java +++ b/httpcore/src/test/java/org/apache/http/ssl/TestSSLContextBuilder.java @@ -37,6 +37,7 @@ import java.net.SocketException; import java.net.URL; import java.security.KeyStore; import java.security.Principal; +import java.security.Security; import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; @@ -618,4 +619,16 @@ public class TestSSLContextBuilder { } } + @Test + public void testBuildWithProvider() throws Exception { + final URL resource1 = getClass().getResource("/test-server.keystore"); + final String storePassword = "nopassword"; + final String keyPassword = "nopassword"; + final SSLContext sslContext=SSLContextBuilder.create() + .setProvider(Security.getProvider("SunJSSE")) + .loadKeyMaterial(resource1, storePassword.toCharArray(), keyPassword.toCharArray()) + .build(); + Assert.assertTrue(sslContext.getProvider().getName().equals("SunJSSE")); + } + }