summaryrefslogtreecommitdiff
path: root/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java')
-rw-r--r--qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java25
1 files changed, 20 insertions, 5 deletions
diff --git a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java
index b2d86c4dbc..6157ec53f6 100644
--- a/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java
+++ b/qpid/java/amqp-1-0-client/src/main/java/org/apache/qpid/amqp_1_0/client/Connection.java
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.amqp_1_0.client;
+import java.security.NoSuchAlgorithmException;
import java.security.Principal;
import java.util.ServiceLoader;
import java.util.concurrent.TimeoutException;
@@ -36,6 +37,8 @@ import org.apache.qpid.amqp_1_0.type.transport.AmqpError;
import org.apache.qpid.amqp_1_0.type.transport.ConnectionError;
import org.apache.qpid.amqp_1_0.type.transport.Error;
+import javax.net.ssl.SSLContext;
+
public class Connection implements ExceptionHandler
{
private static final int MAX_FRAME_SIZE = 65536;
@@ -143,10 +146,10 @@ public class Connection implements ExceptionHandler
final String password,
final Container container,
final String remoteHost,
- final boolean ssl,
+ final SSLContext sslContext,
final int channelMax) throws ConnectionException
{
- this(protocol, address, port, username, password, MAX_FRAME_SIZE,container,remoteHost,ssl,
+ this(protocol, address, port, username, password, MAX_FRAME_SIZE,container,remoteHost,sslContext,
channelMax);
}
@@ -160,7 +163,19 @@ public class Connection implements ExceptionHandler
boolean ssl,
int channelMax) throws ConnectionException
{
- this(ssl?"amqp":"amqps",address,port,username,password,maxFrameSize,container,remoteHostname,ssl,channelMax);
+ this(ssl?"amqp":"amqps",address,port,username,password,maxFrameSize,container,remoteHostname,getSslContext(ssl),channelMax);
+ }
+
+ private static SSLContext getSslContext(final boolean ssl) throws ConnectionException
+ {
+ try
+ {
+ return ssl ? SSLContext.getDefault() : null;
+ }
+ catch (NoSuchAlgorithmException e)
+ {
+ throw new ConnectionException(e);
+ }
}
public Connection(final String protocol,
@@ -171,7 +186,7 @@ public class Connection implements ExceptionHandler
final int maxFrameSize,
final Container container,
final String remoteHostname,
- boolean ssl,
+ SSLContext sslContext,
int channelMax) throws ConnectionException
{
@@ -240,7 +255,7 @@ public class Connection implements ExceptionHandler
TransportProvider transportProvider = getTransportProvider(protocol);
- transportProvider.connect(_conn,address,port,ssl, this);
+ transportProvider.connect(_conn,address,port, sslContext, this);
_conn.open();