summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-09-15 21:08:32 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-09-15 21:08:32 +0000
commit8c56d64f1cbaa2445d6deefa754f89981f0b17cb (patch)
treef6ae86e0b2da249803ee7d5cad12077beef0f64b /qpid/java
parent9251cb4f43a277aa30b0ba0b79444b18f69f84e5 (diff)
downloadqpid-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.java41
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)
{