Using Vaulted Password in MDB annotation does not work in EAP 6

Solution Unverified - Updated -

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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.