You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/03/02 16:12:25 UTC
[1/2] qpid-jms git commit: add support for expecting connections
using the EXTERNAL mechanism, add test that does
Repository: qpid-jms
Updated Branches:
refs/heads/master 8e5662ed6 -> 7a5b6f3a5
add support for expecting connections using the EXTERNAL mechanism, add test that does
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/e58678fe
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/e58678fe
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/e58678fe
Branch: refs/heads/master
Commit: e58678fe5c5a6547a2e44fc0cef4e57e21ebeefb
Parents: 8e5662e
Author: Robert Gemmell <ro...@apache.org>
Authored: Mon Mar 2 12:29:43 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Mar 2 12:29:43 2015 +0000
----------------------------------------------------------------------
.../jms/integration/SaslIntegrationTest.java | 56 ++++++++++++++++++++
.../qpid/jms/test/testpeer/TestAmqpPeer.java | 37 +++++++++++++
2 files changed, 93 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e58678fe/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
new file mode 100644
index 0000000..d655bef
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
@@ -0,0 +1,56 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.jms.integration;
+
+import static org.junit.Assert.assertNull;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+
+import org.apache.qpid.jms.JmsConnectionFactory;
+import org.apache.qpid.jms.test.QpidJmsTestCase;
+import org.apache.qpid.jms.test.testpeer.TestAmqpPeer;
+import org.junit.Test;
+
+public class SaslIntegrationTest extends QpidJmsTestCase {
+
+ @Test(timeout = 5000)
+ public void testSaslExternalConnection() throws Exception {
+ try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
+
+ // Expect an EXTERNAL connection
+ testPeer.expectExternalConnect();
+ // Each connection creates a session for managing temporary destinations etc
+ testPeer.expectBegin(true);
+
+ ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort());
+ Connection connection = factory.createConnection();
+ // Set a clientID to provoke the actual AMQP connection process to occur.
+ connection.setClientID("clientName");
+
+ testPeer.waitForAllHandlersToComplete(1000);
+ assertNull(testPeer.getThrowable());
+
+ testPeer.expectClose();
+ connection.close();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/e58678fe/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
index 001adee..350a5f5 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/TestAmqpPeer.java
@@ -338,6 +338,43 @@ public class TestAmqpPeer implements AutoCloseable
null)));
}
+ /**
+ * NOTE: this is only testing use of the mechanism, there is no SSL here yet.
+ */
+ public void expectExternalConnect()
+ {
+ SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(Symbol.valueOf("EXTERNAL"));
+ addHandler(new HeaderHandlerImpl(AmqpHeader.SASL_HEADER, AmqpHeader.SASL_HEADER,
+ new FrameSender(
+ this, FrameType.SASL, 0,
+ saslMechanismsFrame, null)));
+
+ addHandler(new SaslInitMatcher()
+ .withMechanism(equalTo(Symbol.valueOf("EXTERNAL")))
+ .onSuccess(new AmqpPeerRunnable()
+ {
+ @Override
+ public void run()
+ {
+ TestAmqpPeer.this.sendFrame(
+ FrameType.SASL, 0,
+ new SaslOutcomeFrame().setCode(UnsignedByte.valueOf((byte)0)),
+ null,
+ false);
+ _driverRunnable.expectHeader();
+ }
+ }));
+
+ addHandler(new HeaderHandlerImpl(AmqpHeader.HEADER, AmqpHeader.HEADER));
+
+ addHandler(new OpenMatcher()
+ .withContainerId(notNullValue(String.class))
+ .onSuccess(new FrameSender(
+ this, FrameType.AMQP, 0,
+ new OpenFrame().setContainerId("test-amqp-peer-container-id"),
+ null)));
+ }
+
public void expectPlainConnect(String username, String password, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties)
{
SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(Symbol.valueOf("PLAIN"));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] qpid-jms git commit: add some tests using ANONYMOUS and PLAIN
explicitly
Posted by ro...@apache.org.
add some tests using ANONYMOUS and PLAIN explicitly
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/7a5b6f3a
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/7a5b6f3a
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/7a5b6f3a
Branch: refs/heads/master
Commit: 7a5b6f3a5cb737eb09352a63edb8bd251da453a1
Parents: e58678f
Author: Robert Gemmell <ro...@apache.org>
Authored: Mon Mar 2 15:11:17 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Mar 2 15:11:17 2015 +0000
----------------------------------------------------------------------
.../jms/integration/SaslIntegrationTest.java | 44 ++++++++++++++++++++
1 file changed, 44 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/7a5b6f3a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
index d655bef..710e128 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
@@ -53,4 +53,48 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
connection.close();
}
}
+
+ @Test(timeout = 5000)
+ public void testSaslPlainConnection() throws Exception {
+ try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
+
+ // Expect a PLAIN connection
+ testPeer.expectPlainConnect("guest", "guest", null, null);
+ // Each connection creates a session for managing temporary destinations etc
+ testPeer.expectBegin(true);
+
+ ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort());
+ Connection connection = factory.createConnection("guest", "guest");
+ // Set a clientID to provoke the actual AMQP connection process to occur.
+ connection.setClientID("clientName");
+
+ testPeer.waitForAllHandlersToComplete(1000);
+ assertNull(testPeer.getThrowable());
+
+ testPeer.expectClose();
+ connection.close();
+ }
+ }
+
+ @Test(timeout = 5000)
+ public void testSaslAnonymousConnection() throws Exception {
+ try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
+
+ // Expect an ANOYMOUS connection
+ testPeer.expectAnonymousConnect(true);
+ // Each connection creates a session for managing temporary destinations etc
+ testPeer.expectBegin(true);
+
+ ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort());
+ Connection connection = factory.createConnection();
+ // Set a clientID to provoke the actual AMQP connection process to occur.
+ connection.setClientID("clientName");
+
+ testPeer.waitForAllHandlersToComplete(1000);
+ assertNull(testPeer.getThrowable());
+
+ testPeer.expectClose();
+ connection.close();
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org