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/06/16 16:01:21 UTC

[2/6] qpid-jms git commit: NO-JIRA: initial changes for consolidating sasl connection handling

NO-JIRA: initial changes for consolidating sasl connection handling


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/78dabd8d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/78dabd8d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/78dabd8d

Branch: refs/heads/master
Commit: 78dabd8d4607046d8760c05b57936625a9aac286
Parents: 6b36338
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 16 10:57:13 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 16 11:03:36 2015 +0100

----------------------------------------------------------------------
 .../jms/integration/IntegrationTestFixture.java |   2 +-
 .../jms/integration/SaslIntegrationTest.java    |   2 +-
 .../jms/provider/amqp/AmqpProviderTest.java     |   2 +-
 .../qpid/jms/test/testpeer/TestAmqpPeer.java    | 141 ++++++++++---------
 4 files changed, 79 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/78dabd8d/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
index fef76fe..8dd148c 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/IntegrationTestFixture.java
@@ -56,7 +56,7 @@ public class IntegrationTestFixture {
     Connection establishConnecton(TestAmqpPeer testPeer, boolean ssl, String optionsString, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties, boolean setClientId) throws JMSException {
         Symbol[] desiredCapabilities = new Symbol[] { AmqpSupport.SOLE_CONNECTION_CAPABILITY };
 
-        testPeer.expectPlainConnect("guest", "guest", desiredCapabilities, serverCapabilities, serverProperties);
+        testPeer.expectSaslPlainConnect("guest", "guest", desiredCapabilities, serverCapabilities, serverProperties);
 
         // Each connection creates a session for managing temporary destinations etc
         testPeer.expectBegin(true);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/78dabd8d/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 fc658c9..b31f986 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
@@ -93,7 +93,7 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
             String user = "user";
             String pass = "qwerty123456";
 
-            testPeer.expectPlainConnect(user, pass, null, null);
+            testPeer.expectSaslPlainConnect(user, pass, null, null);
             // Each connection creates a session for managing temporary destinations etc
             testPeer.expectBegin(true);
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/78dabd8d/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
index 0105948..b339ad9 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/AmqpProviderTest.java
@@ -156,7 +156,7 @@ public class AmqpProviderTest extends QpidJmsTestCase {
         final long REQUEST_TIMEOUT = TimeUnit.SECONDS.toMillis(7);
 
         provider = new AmqpProvider(peerURI);
-        testPeer.expectPlainConnect(TEST_USERNAME, TEST_PASSWORD, null, null);
+        testPeer.expectSaslPlainConnect(TEST_USERNAME, TEST_PASSWORD, null, null);
         testPeer.expectBegin(true);
         provider.connect();
         testPeer.expectClose();

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/78dabd8d/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 efc657b..f29f973 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
@@ -96,6 +96,7 @@ import org.slf4j.LoggerFactory;
 // TODO should expectXXXYYYZZZ methods just be expect(matcher)?
 public class TestAmqpPeer implements AutoCloseable
 {
+    private static final Symbol PLAIN = Symbol.valueOf("PLAIN");
     private static final Logger LOGGER = LoggerFactory.getLogger(TestAmqpPeer.class.getName());
     private static final int CONNECTION_CHANNEL = 0;
 
@@ -364,6 +365,81 @@ public class TestAmqpPeer implements AutoCloseable
         return openFrame;
     }
 
+    public void expectSaslConnect(Symbol mechanism, Matcher<Binary> initialResponseMatcher, Symbol[] desiredCapabilities, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties)
+    {
+        SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(mechanism);
+        addHandler(new HeaderHandlerImpl(AmqpHeader.SASL_HEADER, AmqpHeader.SASL_HEADER,
+                                            new FrameSender(
+                                                    this, FrameType.SASL, 0,
+                                                    saslMechanismsFrame, null)));
+
+        addHandler(new SaslInitMatcher()
+            .withMechanism(equalTo(mechanism))
+            .withInitialResponse(initialResponseMatcher)
+            .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));
+
+        OpenFrame open = createOpenFrame();
+        if(serverCapabilities != null)
+        {
+            open.setOfferedCapabilities(serverCapabilities);
+        }
+
+        if(serverProperties != null)
+        {
+            open.setProperties(serverProperties);
+        }
+
+        OpenMatcher openMatcher = new OpenMatcher()
+            .withContainerId(notNullValue(String.class))
+            .onSuccess(new FrameSender(
+                    this, FrameType.AMQP, 0,
+                    open,
+                    null));
+
+        if (desiredCapabilities != null)
+        {
+            openMatcher.withDesiredCapabilities(arrayContaining(desiredCapabilities));
+        }
+        else
+        {
+            openMatcher.withDesiredCapabilities(nullValue());
+        }
+
+        addHandler(openMatcher);
+    }
+
+    public void expectSaslPlainConnect(String username, String password, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties)
+    {
+        expectSaslPlainConnect(username, password, new Symbol[] { AmqpSupport.SOLE_CONNECTION_CAPABILITY }, serverCapabilities, serverProperties);
+    }
+
+    public void expectSaslPlainConnect(String username, String password, Symbol[] desiredCapabilities, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties)
+    {
+        byte[] usernameBytes = username.getBytes();
+        byte[] passwordBytes = password.getBytes();
+        byte[] data = new byte[usernameBytes.length+passwordBytes.length+2];
+        System.arraycopy(usernameBytes, 0, data, 1, usernameBytes.length);
+        System.arraycopy(passwordBytes, 0, data, 2 + usernameBytes.length, passwordBytes.length);
+
+        Matcher<Binary> initialResponseMatcher = equalTo(new Binary(data));
+
+        expectSaslConnect(PLAIN, initialResponseMatcher, desiredCapabilities, serverCapabilities, serverProperties);
+    }
+
     public void expectFailingSaslConnect(Symbol[] serverMechs, Symbol clientSelectedMech)
     {
         SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(serverMechs);
@@ -512,71 +588,6 @@ public class TestAmqpPeer implements AutoCloseable
                     null)));
     }
 
-    public void expectPlainConnect(String username, String password, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties)
-    {
-        expectPlainConnect(username, password, new Symbol[] { AmqpSupport.SOLE_CONNECTION_CAPABILITY }, serverCapabilities, serverProperties);
-    }
-
-    public void expectPlainConnect(String username, String password, Symbol[] desiredCapabilities, Symbol[] serverCapabilities, Map<Symbol, Object> serverProperties)
-    {
-        SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(Symbol.valueOf("PLAIN"));
-        addHandler(new HeaderHandlerImpl(AmqpHeader.SASL_HEADER, AmqpHeader.SASL_HEADER,
-                                            new FrameSender(
-                                                    this, FrameType.SASL, 0,
-                                                    saslMechanismsFrame, null)));
-
-        byte[] usernameBytes = username.getBytes();
-        byte[] passwordBytes = password.getBytes();
-        byte[] data = new byte[usernameBytes.length+passwordBytes.length+2];
-        System.arraycopy(usernameBytes, 0, data, 1, usernameBytes.length);
-        System.arraycopy(passwordBytes, 0, data, 2 + usernameBytes.length, passwordBytes.length);
-
-        addHandler(new SaslInitMatcher()
-            .withMechanism(equalTo(Symbol.valueOf("PLAIN")))
-            .withInitialResponse(equalTo(new Binary(data)))
-            .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));
-
-        OpenFrame open = createOpenFrame();
-        if(serverCapabilities != null)
-        {
-            open.setOfferedCapabilities(serverCapabilities);
-        }
-
-        if(serverProperties != null)
-        {
-            open.setProperties(serverProperties);
-        }
-
-        OpenMatcher openMatcher = new OpenMatcher()
-            .withContainerId(notNullValue(String.class))
-            .onSuccess(new FrameSender(
-                    this, FrameType.AMQP, 0,
-                    open,
-                    null));
-
-        if (desiredCapabilities != null) {
-            openMatcher.withDesiredCapabilities(arrayContaining(desiredCapabilities));
-        } else {
-            openMatcher.withDesiredCapabilities(nullValue());
-        }
-
-        addHandler(openMatcher);
-    }
-
     // TODO - Reject any incoming connection using the supplied information
     public void rejectConnect(Symbol errorType, String errorMessage, Map<Symbol, Object> errorInfo) {
         SaslMechanismsFrame saslMechanismsFrame = new SaslMechanismsFrame().setSaslServerMechanisms(Symbol.valueOf("ANONYMOUS"));


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org