I have a simulation with this JMSConfiguration:
val jmsConfig = jms
.connectionFactoryName("ConnectionFactory")
.url("tcp://amq1.lnx.example.com:61616")
.credentials("admin", "password")
.contextFactory(classOf[ActiveMQInitialContextFactory].getName)
.listenerCount(1)
.usePersistentDeliveryMode
While "jaasAuthenticationPlugin" is enabled in activemq.xml this fails with the exception posted below indicating that the username is "null" or password is invalid.
In the broker logs I also see:2015-09-14 13:45:46,359 | INFO | e[amq1] Task-153 | TransportConnection | emq.broker.TransportConnection$3 1076 | 121 - org.apache.activemq.activemq-osgi - 5.9.0.redhat-611442 | Stopping tcp://192.168.102.11:35546 because Failed with SecurityException: User name [null] or password is invalid.In the docs I can see the option:
"disableAnonymousConnect optional, by default, connection won’t use the above credentials".
If I try to change my jmsConfig to:
val jmsConfig = jms
.connectionFactoryName("ConnectionFactory")
.url("tcp://amq1.lnx.example.com:61616")
.credentials("admin", "password")
.contextFactory(classOf[ActiveMQInitialContextFactory].getName)
.listenerCount(1)
.usePersistentDeliveryMode
.disableAnonymousConnect
I get this error:
4:25:51.557 [ERROR] i.g.c.ZincCompiler$ - /home/gatling/gatling-charts-highcharts-bundle-2.1.7/user-files/simulations/amq/AMQInboundOutboundSimulation.scala:17: value disableAnonymousConnect is not a member of io.gatling.jms.JmsProtocolBuilder
possible cause: maybe a semicolon is missing before `value disableAnonymousConnect'?
---------------------------------------
[ERROR] [09/14/2015 13:25:46.126]
[GatlingSystem-akka.actor.default-dispatcher-3]
[akka://GatlingSystem/user/jmsReqReply-3] User name [null] or password
is invalid.
akka.actor.ActorInitializationException: exception during creation
at akka.actor.ActorInitializationException$.apply(Actor.scala:166)
at akka.actor.ActorCell.create(ActorCell.scala:596)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator
$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool
$WorkQueue.runTask(ForkJoinPool.java:1339)
at
scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at
scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: javax.jms.JMSSecurityException: User name [null] or password
is invalid.
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:52)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1419)
at
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1520)
at
org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:527)
at
io.gatling.jms.client.SimpleJmsClient.<init>(SimpleJmsClient.scala:66)
at io.gatling.jms.JmsReqReplyAction.<init>(JmsReqReplyAction.scala:54)
at io.gatling.jms.JmsReqReplyActionBuilder$$anonfun$build
$1.apply(JmsReqReplyActionBuilder.scala:31)
at io.gatling.jms.JmsReqReplyActionBuilder$$anonfun$build
$1.apply(JmsReqReplyActionBuilder.scala:31)
at akka.actor.TypedCreatorFunctionConsumer.produce(Props.scala:343)
at akka.actor.Props.newActor(Props.scala:252)
at akka.actor.ActorCell.newActor(ActorCell.scala:552)
at akka.actor.ActorCell.create(ActorCell.scala:578)
... 9 more
Caused by: java.lang.SecurityException: User name [null] or password is
invalid.
at
org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:80)
at
org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:102)
at
org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:808)
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:333)
at org.apache.activemq.broker.TransportConnection
$1.onCommand(TransportConnection.java:187)
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:270)
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:745)
Caused by: javax.security.auth.login.LoginException: Username can not be
null
at
org.apache.karaf.jaas.modules.properties.PropertiesLoginModule.login(PropertiesLoginModule.java:99)
at
org.apache.karaf.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
at javax.security.auth.login.LoginContext.access
$000(LoginContext.java:203)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
at javax.security.auth.login.LoginContext.login(LoginContext.java:595)
at
org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:73)
... 13 more