Now ,I want to use java.naming.security.principal and java.naming.security.credentials to connection Activemq, but it fails, I don't know why .
this is my code: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ properties.load(new FileInputStream(new File("./jndi.properties"))); InitialContext jndiContext = new InitialContext(properties); if (connectionFactory == null || connectionFactory.trim().length() == 0) throw new IllegalArgumentException( "Connection factory has not been provided"); ConnectionFactory factory = (ConnectionFactory) jndiContext .lookup(connectionFactory); Connection connection = factory.createConnection(); connection.start(); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ this is file jndi.properties content: java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory java.naming.provider.url=tcp://172.30.13.18:61616 java.naming.security.principal=test java.naming.security.credentials=test ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ this is provider config <plugins> <!-- Configure authentication; Username, passwords and groups --> <simpleAuthenticationPlugin> <users> <authenticationUser username="test" password="test" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ my program can not connection MQ, it throw a exception like this, it seems username doesn't pass to MQ , Did I miss something? javax.jms.JMSException: User name [null] or password is invalid. at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1391) at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1496) at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:524) at com.datafeed.security.MQSecurityTest.main(MQSecurityTest.java:58) Caused by: java.lang.SecurityException: User name [null] or password is invalid. at org.apache.activemq.security.SimpleAuthenticationBroker.addConnection(SimpleAuthenticationBroker.java:77) at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:766) at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:79) at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:329) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:184) at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:288) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196) at java.lang.Thread.run(Thread.java:722)