Maarten Boekhold created ARTEMIS-2412:
-----------------------------------------

             Summary: Full connection configuration through JNDI
                 Key: ARTEMIS-2412
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2412
             Project: ActiveMQ Artemis
          Issue Type: New Feature
          Components: ActiveMQ-Artemis-Native
    Affects Versions: 2.9.0
            Reporter: Maarten Boekhold
            Assignee: clebert suconic


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):
{code:java}
    <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"/>{code}
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:
{code:java}
    <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"/>
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to