diff options
Diffstat (limited to 'java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java')
-rw-r--r-- | java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java b/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java index 6bb038a581..fd73915b65 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java +++ b/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java @@ -125,6 +125,38 @@ public class SSLUtil return id.toString(); } + public static SSLContext createSSLContext(ConnectionSettings settings) throws Exception + { + SSLContextFactory sslContextFactory; + + if (settings.getCertAlias() == null) + { + sslContextFactory = + new SSLContextFactory(settings.getTrustStorePath(), + settings.getTrustStorePassword(), + settings.getTrustStoreCertType(), + settings.getKeyStorePath(), + settings.getKeyStorePassword(), + settings.getKeyStoreCertType()); + + } else + { + sslContextFactory = + new SSLContextFactory(settings.getTrustStorePath(), + settings.getTrustStorePassword(), + settings.getTrustStoreCertType(), + new QpidClientX509KeyManager(settings.getCertAlias(), + settings.getKeyStorePath(), + settings.getKeyStorePassword(), + settings.getKeyStoreCertType())); + + log.debug("Using custom key manager"); + } + + return sslContextFactory.buildServerContext(); + + } + public static KeyStore getInitializedKeyStore(String storePath, String storePassword) throws GeneralSecurityException, IOException { KeyStore ks = KeyStore.getInstance("JKS"); @@ -144,10 +176,7 @@ public class SSLUtil { throw new IOException("Unable to load keystore resource: " + storePath); } - - char[] storeCharPassword = storePassword == null ? null : storePassword.toCharArray(); - - ks.load(in, storeCharPassword); + ks.load(in, storePassword.toCharArray()); } finally { |