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:25 UTC
[6/6] qpid-jms git commit: NO-JIRA: consolidate the SASL handling
prior to rejecting a connection
NO-JIRA: consolidate the SASL handling prior to rejecting a connection
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/a91170e2
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/a91170e2
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/a91170e2
Branch: refs/heads/master
Commit: a91170e29270193619abff3a96a13577a5c62d42
Parents: a5e049a
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Jun 16 12:18:47 2015 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Jun 16 12:18:47 2015 +0100
----------------------------------------------------------------------
.../qpid/jms/test/testpeer/TestAmqpPeer.java | 48 +++++---------------
1 file changed, 12 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/a91170e2/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 b1aad6d..164d2ee 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
@@ -482,7 +482,12 @@ public class TestAmqpPeer implements AutoCloseable
public void expectSaslAnonymousConnect(Matcher<?> idleTimeoutMatcher, Matcher<?> hostnameMatcher)
{
- expectSaslConnect(ANONYMOUS, equalTo(new Binary(new byte[0])), new Symbol[] { AmqpSupport.SOLE_CONNECTION_CAPABILITY }, null, null, idleTimeoutMatcher, hostnameMatcher);
+ expectSaslAnonymousConnect(idleTimeoutMatcher, hostnameMatcher, null);
+ }
+
+ public void expectSaslAnonymousConnect(Matcher<?> idleTimeoutMatcher, Matcher<?> hostnameMatcher, Map<Symbol, Object> serverProperties)
+ {
+ expectSaslConnect(ANONYMOUS, equalTo(new Binary(new byte[0])), new Symbol[] { AmqpSupport.SOLE_CONNECTION_CAPABILITY }, null, serverProperties, idleTimeoutMatcher, hostnameMatcher);
}
public void expectFailingSaslConnect(Symbol[] serverMechs, Symbol clientSelectedMech)
@@ -531,44 +536,14 @@ public class TestAmqpPeer implements AutoCloseable
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(ANONYMOUS);
- addHandler(new HeaderHandlerImpl(AmqpHeader.SASL_HEADER, AmqpHeader.SASL_HEADER,
- new FrameSender(
- this, FrameType.SASL, 0,
- saslMechanismsFrame, null)));
-
- addHandler(new SaslInitMatcher()
- .withMechanism(equalTo(ANONYMOUS))
- .withInitialResponse(equalTo(new Binary(new byte[0])))
- .onSuccess(new AmqpPeerRunnable()
- {
- @Override
- public void run()
- {
- TestAmqpPeer.this.sendFrame(
- FrameType.SASL, 0,
- new SaslOutcomeFrame().setCode(SASL_OK),
- null,
- false);
- _driverRunnable.expectHeader();
- }
- }));
+ // Expect a connection, establish through the SASL negotiation and sending of the Open frame
+ Map<Symbol, Object> serverProperties = new HashMap<Symbol, Object>();
+ serverProperties.put(AmqpSupport.CONNECTION_OPEN_FAILED, true);
- addHandler(new HeaderHandlerImpl(AmqpHeader.HEADER, AmqpHeader.HEADER));
-
- Map<Symbol, Object> properties = new HashMap<Symbol, Object>();
- properties.put(Symbol.valueOf("amqp:connection-establishment-failed"), true);
-
- OpenFrame open = createOpenFrame();
- open.setProperties(properties);
-
- addHandler(new OpenMatcher()
- .withContainerId(notNullValue(String.class))
- .onSuccess(new FrameSender(this, FrameType.AMQP, CONNECTION_CHANNEL, open, null)));
+ expectSaslAnonymousConnect(null, null, serverProperties);
- // Now generate the Close with the supplied error
+ // Now generate the Close frame with the supplied error
final CloseFrame closeFrame = new CloseFrame();
if (errorType != null) {
org.apache.qpid.jms.test.testpeer.describedtypes.Error detachError = new org.apache.qpid.jms.test.testpeer.describedtypes.Error();
@@ -578,6 +553,7 @@ public class TestAmqpPeer implements AutoCloseable
closeFrame.setError(detachError);
}
+ // Update the handler to send the Close frame after the Open frame.
CompositeAmqpPeerRunnable comp = insertCompsiteActionForLastHandler();
final FrameSender closeSender = new FrameSender(this, FrameType.AMQP, CONNECTION_CHANNEL, closeFrame, null);
comp.add(closeSender);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org