diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2008-10-23 19:32:02 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2008-10-23 19:32:02 +0000 |
| commit | 9113054ad3ef3a35c18bd601bf61ea4f04ae60e0 (patch) | |
| tree | c6c70a06e4500dc862a54faecb409e519801dcaf /java/common/src | |
| parent | b86dc28068add97e152bddfb514c02d0659f1088 (diff) | |
| download | qpid-python-9113054ad3ef3a35c18bd601bf61ea4f04ae60e0.tar.gz | |
This is for QPID-1296
added a boolean to the connect method to indicate whether an SSL connection should be created.
currently there seems to be two issues.
1. The shutdownInput method used in IoReceiver is not supported by the SSLSocket implementation.
2. I haven't able to get client side authentication working.
For item 1 we may need to use nio classes to get around the issue.
For item 2 I am yet to figure out the correct config options to get client side auth working.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707453 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src')
4 files changed, 27 insertions, 14 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/ToyClient.java b/java/common/src/main/java/org/apache/qpid/ToyClient.java index 8163210f14..3491af8cd2 100644 --- a/java/common/src/main/java/org/apache/qpid/ToyClient.java +++ b/java/common/src/main/java/org/apache/qpid/ToyClient.java @@ -52,7 +52,7 @@ class ToyClient implements SessionListener public static final void main(String[] args) { Connection conn = new Connection(); - conn.connect("0.0.0.0", 5672, null, "guest", "guest"); + conn.connect("0.0.0.0", 5672, null, "guest", "guest", false); Session ssn = conn.createSession(); ssn.setSessionListener(new ToyClient()); diff --git a/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/java/common/src/main/java/org/apache/qpid/transport/Connection.java index f4dc4408be..7a66c2c238 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/Connection.java +++ b/java/common/src/main/java/org/apache/qpid/transport/Connection.java @@ -155,7 +155,7 @@ public class Connection extends ConnectionInvoker return saslClient; } - public void connect(String host, int port, String vhost, String username, String password) + public void connect(String host, int port, String vhost, String username, String password,boolean ssl) { synchronized (lock) { @@ -163,7 +163,7 @@ public class Connection extends ConnectionInvoker delegate = new ClientDelegate(vhost, username, password); - IoTransport.connect(host, port, ConnectionBinding.get(this)); + IoTransport.connect(host, port, ConnectionBinding.get(this),ssl); send(new ProtocolHeader(1, 0, 10)); Waiter w = new Waiter(lock, timeout); diff --git a/java/common/src/main/java/org/apache/qpid/transport/network/io/IoTransport.java b/java/common/src/main/java/org/apache/qpid/transport/network/io/IoTransport.java index be17766740..8d52c3269a 100644 --- a/java/common/src/main/java/org/apache/qpid/transport/network/io/IoTransport.java +++ b/java/common/src/main/java/org/apache/qpid/transport/network/io/IoTransport.java @@ -26,6 +26,8 @@ import java.net.Socket; import java.net.SocketException; import java.nio.ByteBuffer; +import javax.net.ssl.SSLSocketFactory; + import org.apache.qpid.protocol.AMQVersionAwareProtocolSession; import org.apache.qpid.transport.Binding; import org.apache.qpid.transport.Connection; @@ -98,22 +100,24 @@ public final class IoTransport<E> } public static final <E> E connect(String host, int port, - Binding<E,ByteBuffer> binding) + Binding<E,ByteBuffer> binding, + boolean ssl) { - Socket socket = createSocket(host, port); + Socket socket = createSocket(host, port,ssl); IoTransport<E> transport = new IoTransport<E>(socket, binding); return transport.endpoint; } public static final Connection connect(String host, int port, - ConnectionDelegate delegate) + ConnectionDelegate delegate, + boolean ssl) { - return connect(host, port, ConnectionBinding.get(delegate)); + return connect(host, port, ConnectionBinding.get(delegate),ssl); } - public static void connect_0_9(AMQVersionAwareProtocolSession session, String host, int port) + public static void connect_0_9(AMQVersionAwareProtocolSession session, String host, int port, boolean ssl) { - connect(host, port, new Binding_0_9(session)); + connect(host, port, new Binding_0_9(session),ssl); } private static class Binding_0_9 @@ -140,12 +144,21 @@ public final class IoTransport<E> } - private static Socket createSocket(String host, int port) + private static Socket createSocket(String host, int port, boolean ssl) { try { InetAddress address = InetAddress.getByName(host); - Socket socket = new Socket(); + Socket socket; + if (ssl) + { + SSLSocketFactory sslSocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); + socket = sslSocketfactory.createSocket(); + } + else + { + socket = new Socket(); + } socket.setReuseAddress(true); socket.setTcpNoDelay(Boolean.getBoolean("amqj.tcpNoDelay")); diff --git a/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java b/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java index 19e1c2537f..b1fe08bfb9 100644 --- a/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java +++ b/java/common/src/test/java/org/apache/qpid/transport/ConnectionTest.java @@ -139,7 +139,7 @@ public class ConnectionTest extends TestCase implements SessionListener } } }); - conn.connect("localhost", port, null, "guest", "guest"); + conn.connect("localhost", port, null, "guest", "guest",false); return conn; } @@ -170,7 +170,7 @@ public class ConnectionTest extends TestCase implements SessionListener public void testResume() throws Exception { Connection conn = new Connection(); - conn.connect("localhost", port, null, "guest", "guest"); + conn.connect("localhost", port, null, "guest", "guest",false); conn.setConnectionListener(new ConnectionListener() { @@ -182,7 +182,7 @@ public class ConnectionTest extends TestCase implements SessionListener public void closed(Connection conn) { queue = true; - conn.connect("localhost", port, null, "guest", "guest"); + conn.connect("localhost", port, null, "guest", "guest",false); conn.resume(); } }); |
