Using Vaulted Password in MDB annotation does not work in EAP 6
Issue
When using Vaulted Password in @MessageDriven annotation to encrypt JMS user's password, HornetQ repeats throwing ERROR and WARN messages with "HQ119031: Unable to validate user". I followed the security guide to configure keystore and standalone-full.xml[1] for vault password. And I modified helloworld-mdb in quickstarts like [3]. Then, I saw repeating the following ERROR[3] and WARN[4] messages in server.log.
[1] excerpt from standalon-full.xml:
<vault>
<vault-option name="KEYSTORE_URL" value="/path/to/vault/vault.keystore"></vault>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-7sx3eFj7kCI"></vault>
<vault-option name="KEYSTORE_ALIAS" value="vault"></vault>
<vault-option name="SALT" value="zaq12wsx"></vault>
<vault-option name="ITERATION_COUNT" value="44"></vault>
<vault-option name="ENC_FILE_DIR" value="/path/to/vault/"></vault>
</vault>
...
<subsystem xmlns="urn:jboss:domain:messaging:1.4">
<hornetq-server>
...
<jms-connection-factories>
...
<pooled-connection-factory name="hornetq-ra">
...
<user>quickstartUser</user>
<password>${VAULT::quickstartUser::password::1}</password>
...
[2] Sepcify vault to @MessageDriven annotation of HelloWorldQueueMDB and HelloWorldTopicMDB in JBoss EAP 6.2 QuickStarts "helloworld-mdb":
@ResourceAdapter("hornetq-ra")
@MessageDriven(name = "HelloWorldQueueMDB", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/HELLOWORLDMDBQueue"),
@ActivationConfigProperty(propertyName = "user", propertyValue = "quickstartUser"),
//@ActivationConfigProperty(propertyName = "password", propertyValue = "quickstartPwd1!"),
@ActivationConfigProperty(propertyName = "password", propertyValue = "VAULT::quickstartUser::password::1"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
public class HelloWorldQueueMDB implements MessageListener {
...
[3] ERROR message
ERROR [org.hornetq.ra] (default-threads - 1) HQ154003: Unable to reconnect org.hornetq.ra.inflow.HornetQActivationSpec(ra=org.hornetq.ra.HornetQResourceAdapter@5097ffe1 destination=queue/HELLOWORLDMDBQueue destinationType=javax.jms.Queue ack=Auto-acknowledge durable=false clientID=null user=quickstartUser password=**** maxSession=15): HornetQException[errorType=SECURITY_EXCEPTION message=HQ119031: Unable to validate user: quickstartUser]
at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:388) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:839) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:317) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.HornetQResourceAdapter.createSession(HornetQResourceAdapter.java:1689) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation.setupSession(HornetQActivation.java:486) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation.setup(HornetQActivation.java:334) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation.handleFailure(HornetQActivation.java:702) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation$SetupActivation.run(HornetQActivation.java:757) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:218)
at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)
at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
[4] WARN message
WARN [org.hornetq.ra] (default-threads - 2) HQ152005: Failure in HornetQ activation org.hornetq.ra.inflow.HornetQActivationSpec(ra=org.hornetq.ra.HornetQResourceAdapter@2c47c342 destination=queue/HELLOWORLDMDBQueue destinationType=javax.jms.Queue ack=Auto-acknowledge durable=false clientID=null user=quickstartUser password=**** maxSession=15): HornetQException[errorType=SECURITY_EXCEPTION message=HQ119031: Unable to validate user: quickstartUser]
at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:388) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:839) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:317) [hornetq-core-client-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.HornetQResourceAdapter.createSession(HornetQResourceAdapter.java:1689) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation.setupSession(HornetQActivation.java:486) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation.setup(HornetQActivation.java:334) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.hornetq.ra.inflow.HornetQActivation$SetupActivation.run(HornetQActivation.java:753) [hornetq-ra-2.3.12.Final-redhat-1.jar:2.3.12.Final-redhat-1]
at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:218)
at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)
at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.