activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <>
Subject [jira] [Commented] (AMQ-4596) AMQP: JMSSecurityExceptions are not propagated back to QPID client on authentication failures
Date Mon, 08 Jul 2013 19:41:49 GMT


Timothy Bish commented on AMQ-4596:

The trick is figuring out how to return the exception to the amqp client, currently its not
obvious how that's supposed to work.  
> AMQP: JMSSecurityExceptions are not propagated back to QPID client on authentication
> ---------------------------------------------------------------------------------------------
>                 Key: AMQ-4596
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: Kevin Earls
>         Attachments: AMQ-4596.patch
> I created a broker using a config file that contained:
> <simpleAuthenticationPlugin>
>     <users>
>         <authenticationUser username="system" password="systemPassword" groups="users,admins"/>
>        <authenticationUser username="user" password="userPassword" groups="users"/>
>        <authenticationUser username="guest" password="guestPassword" groups="guests"/>
>     </users>
> </simpleAuthenticationPlugin>
> With a normal client, the following code will throw a JMSSecurityException on the connection.start(),
or connection.createProducer(), or I assume on anything you do with connection.  The same
is true if I call createConnection with an unknown user, or a known user and invalid password
>     ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
>     Connection connection = factory.createConnection();
>     connection.start();
> When I use the QPID client though, I don't get the JMSSecurityException.  In the logs
I can see the exception being thrown by the broker, but it doesn't get propagated back to
the client, even if I add an exception listener.  The code below will continue along until
it hangs on the session.CreateProducer() call.
>     ConnectionFactoryImpl factory = new ConnectionFactoryImpl("localhost", port, "admin",
>      Connection connection = factory.createConnection();
>      connection.setExceptionListener(new ExceptionListener() {
>          @Override
>          public void onException(JMSException exception) {
>              exception.printStackTrace();
>          }
>      });
>      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
>      QueueImpl queue = new QueueImpl("queue://txqueue");
>      MessageProducer p = session.createProducer(queue);
> I will attach a unit test that reproduces this.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message