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)