summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/management-http
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-08-08 15:05:58 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-08-08 15:05:58 +0000
commit414074d9fcec48fe395a061d3d31c255c4bbc13f (patch)
tree1e7f921c6606c23518f67795bc8955a565692e68 /qpid/java/broker-plugins/management-http
parente33c4e5c33768233282b69c9cb14dd515d191bb7 (diff)
downloadqpid-python-414074d9fcec48fe395a061d3d31c255c4bbc13f.tar.gz
QPID-5056 : [Java Broker] Change configuration model to allow for KeyStores/TrustStores which are not JKS files on the filesystem
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1511825 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/management-http')
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
index e66680ce12..c47ec9b9e7 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
@@ -22,6 +22,9 @@ package org.apache.qpid.server.management.plugin;
import java.lang.reflect.Type;
import java.net.SocketAddress;
+import java.security.GeneralSecurityException;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumSet;
@@ -30,6 +33,7 @@ import java.util.HashSet;
import java.util.Map;
import java.util.UUID;
+import javax.net.ssl.SSLContext;
import org.apache.log4j.Logger;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.actors.CurrentActor;
@@ -239,13 +243,17 @@ public class HttpManagement extends AbstractPluginAdapter implements HttpManagem
{
throw new IllegalConfigurationException("Key store is not configured. Cannot start management on HTTPS port without keystore");
}
- String keyStorePath = (String)keyStore.getAttribute(KeyStore.PATH);
- String keyStorePassword = keyStore.getPassword();
-
SslContextFactory factory = new SslContextFactory();
- factory.setKeyStorePath(keyStorePath);
- factory.setKeyStorePassword(keyStorePassword);
-
+ try
+ {
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(keyStore.getKeyManagers(), null, null);
+ factory.setSslContext(sslContext);
+ }
+ catch (GeneralSecurityException e)
+ {
+ throw new RuntimeException("Cannot configure port " + port.getName() + " for transport " + Transport.SSL, e);
+ }
connector = new SslSocketConnector(factory);
}
else