Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-2412

Full connection configuration through JNDI

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.9.0
    • 2.10.0
    • None
    • None

    Description

      With the native Artemis JMS classes, eg org.apache.activemq.artemis.jndi.JNDIReferenceFactory, it is not possible to configure the SSL parameters through JNDI properties. It's only possible by "stuffing" everything inside the brokerURL, which isn't nice.

      To put into context, with the "plain ol' ActiveMQ" JNDIReferenceFactory, you can do (borrowing from the Tomcat syntax to define a JNDI resource):

          <Resource name="jms/CONNECTION-FACTORY" auth="Container"
                    type="org.apache.activemq.ActiveMQSslConnectionFactory"
                    description="JMS Connection Factory"
                    factory="org.apache.activemq.jndi.JNDIReferenceFactory"
                    brokerURL="ssl://localhost:14617"
                    trustStore="/pathto/client.ts"
                    keyStore="/path/to/client.ks"
                    trustStorePassword="trustPass"
                    keyStorePassword="keyPass"/>

      The equivalent is not possible with the Artemis native JMS API. Instead you need to encode things inside the brokerURL (which btw is poorly documented on which options are available).

      The request is to enhance  org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory with additional "setter" methods that allow you to specify parameters such as "ssl-enable", "trustStore", "keyStore", "trustStorePassword", "keyStorePassword". The "buildFromProperties()" method should then take care of passing the values in the JNDI binding to the ActiveMQConnectionFactory, which will then use it to correctly initialize the connection.

      Eg. the expectation is to be able to do the following to configure an Artemis "native" ActiveMQConnectionFactory for SSL:

          <Resource name="jms/CONNECTION-FACTORY" auth="Container"
                    type="org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory"
                    description="JMS Connection Factory"
                    factory="org.apache.activemq.artemis.jndi.JNDIReferenceFactory"
                    brokerURL="tcp://localhost:14617"
                    ssl-enable="true"
                    trustStore="/pathto/client.ts"
                    keyStore="/path/to/client.ks"
                    trustStorePassword="trustPass"
                    keyStorePassword="keyPass"/>
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            boekhold Maarten Boekhold
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 1.5h
                1.5h