diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-09-15 21:08:32 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-09-15 21:08:32 +0000 |
| commit | 8c56d64f1cbaa2445d6deefa754f89981f0b17cb (patch) | |
| tree | f6ae86e0b2da249803ee7d5cad12077beef0f64b /qpid/java | |
| parent | 9251cb4f43a277aa30b0ba0b79444b18f69f84e5 (diff) | |
| download | qpid-python-8c56d64f1cbaa2445d6deefa754f89981f0b17cb.tar.gz | |
QPID-6100 : [JMS AMQP 1.0 Client] throw correct exception when connection cannot be authenticated
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1625164 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java index 36bbba0897..f8383396fe 100644 --- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java +++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/ConnectionImpl.java @@ -18,23 +18,34 @@ */ package org.apache.qpid.amqp_1_0.jms.impl; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; + +import javax.jms.ConnectionConsumer; +import javax.jms.Destination; +import javax.jms.ExceptionListener; +import javax.jms.IllegalStateException; +import javax.jms.JMSException; +import javax.jms.Queue; +import javax.jms.QueueConnection; +import javax.jms.QueueSession; +import javax.jms.ServerSessionPool; +import javax.jms.Topic; +import javax.jms.TopicConnection; +import javax.jms.TopicSession; +import javax.net.ssl.SSLContext; + import org.apache.qpid.amqp_1_0.client.ConnectionErrorException; import org.apache.qpid.amqp_1_0.client.ConnectionException; import org.apache.qpid.amqp_1_0.jms.Connection; import org.apache.qpid.amqp_1_0.jms.ConnectionMetaData; import org.apache.qpid.amqp_1_0.jms.Session; import org.apache.qpid.amqp_1_0.transport.Container; - -import javax.jms.*; -import javax.jms.IllegalStateException; -import javax.jms.Queue; -import javax.net.ssl.SSLContext; - -import java.security.NoSuchAlgorithmException; -import java.util.*; - import org.apache.qpid.amqp_1_0.type.Symbol; -import org.apache.qpid.amqp_1_0.type.transport.*; +import org.apache.qpid.amqp_1_0.type.transport.ConnectionError; import org.apache.qpid.amqp_1_0.type.transport.Error; public class ConnectionImpl implements Connection, QueueConnection, TopicConnection @@ -167,6 +178,16 @@ public class ConnectionImpl implements Connection, QueueConnection, TopicConnect _conn.setConnectionErrorTask(new ConnectionErrorTask()); // TODO - retrieve negotiated AMQP version _connectionMetaData = new ConnectionMetaDataImpl(1,0,0); + Error connectionError = _conn.getConnectionError(); + if(connectionError != null) + { + throw new JMSException(connectionError.getDescription(), + connectionError.getCondition().toString()); + } + else if(_conn.getEndpoint().requiresSASL() && !_conn.getEndpoint().isAuthenticated()) + { + throw new JMSException("Authentication Failed"); + } } catch (ConnectionException e) { |
