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 <rob...@apache.org>
Authored: Tue Jun 16 10:57:13 2015 +0100
Committer: Robert Gemmell <rob...@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-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to