[
https://issues.apache.org/jira/browse/AMQ-4596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13751629#comment-13751629
]
Timothy Bish commented on AMQ-4596:
-----------------------------------
For me if I add in this code to the onActiveMQCommand's handling of
MessageDispatch commands then everything seems to work.
{code}
if (md.getMessage() != null) {
Message message = md.getMessage();
if
(!message.getProperties().containsKey("JMS_AMQP_MESSAGE_FORMAT")) {
message.setProperty("JMS_AMQP_MESSAGE_FORMAT", 0);
}
}
{code}
I couldn't really find anything that informs on the values this property should
have but from the code it appears that zero is the not set fall-back so it
might be safe enough.
> AMQP: JMSSecurityExceptions are not propagated back to QPID client on
> authentication failures
> ---------------------------------------------------------------------------------------------
>
> Key: AMQ-4596
> URL: https://issues.apache.org/jira/browse/AMQ-4596
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Reporter: Kevin Earls
> Fix For: 5.9.0
>
> Attachments: AMQ-4596-partial.patch, 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", "password");
> 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: http://www.atlassian.com/software/jira