Details
Description
I've started a secured broker using the sample configuration as follows:
./activemq xbean:file:../conf/activemq-security.xml
After the broker was started, I used the example ProducerTool to put 2000 messages on the TEST.FOO queue. For this to work, I modified the ProducerTool to use username/password as follows:
private String user = "system";
private String password = "manager";
I then connected to the broker using jconsole, and created a new queue using the Broker's addQueue MBean operation. As a test, I also used the TEST.FOO queue's removeMessage MBean operation to remove a message from the queue.
The problem is that certain MBean operations fail with "Problem invoking moveMessageTo : java.lang.SecurityException: User is not authenticated." I have seen this with a queue's sendTextMessage and moveMessageTo operations.
The full exception as logged by the broker for the failed sendTextMessage operation is:
WARN | Failed to add Connection
java.lang.SecurityException: User name or password is invalid.
at org.apache.activemq.security.SimpleAuthenticationBroker.addConnection(SimpleAuthenticationBroker.java:52)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:89)
at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:666)
at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:134)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:297)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:175)
at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:109)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:205)
at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
This seems similar to AMQ-2516. I've tried this using the 5.3.1 and 5.4 SNAPSHOTs and see the same thing.