Description
When I want to configure enabled SSL protocols, Netty requires to use comma delimited list to be passed into enabledProtocols param:
TLSv1,TLSv1.1,TLSv1.2
(see https://activemq.apache.org/artemis/docs/1.0.0/configuring-transports.html#configuring-netty-ssl )
But when comma is used in value in configuration string passed into ActiveMQResourceAdapter.setConnectionParameters, parsing fails:
java.lang.IllegalArgumentException: Invalid expression TLSv1.1 at enabledProtocols=TLSv1,TLSv1.1,TLSv1.2;httpUpgradeEndpoint=http-acceptor;activemqServerName=default;httpUpgradeEnabled=true;port=8080;host=localhost at org.apache.activemq.artemis.ra.ActiveMQRaUtils.parseConfig(ActiveMQRaUtils.java:205) at org.apache.activemq.artemis.ra.ActiveMQResourceAdapter.setConnectionParameters(ActiveMQResourceAdapter.java:344) ... 15 more
This is because parser use comma to deliminate individual configurations, so configuration
enabledProtocols=TLSv1,TLSv1.1,TLSv1.2;httpUpgradeEndpoint=http-acceptor
is parsed as
["enabledProtocols=TLSv1","TLSv1.1","TLSv1.2;httpUpgradeEndpoint=http-acceptor"]
This is design issue - comma required by netty cannot be passed into ActiveMQ configuration value.
I set this as critical as it prevent setting more then one allowed SSLContext protocol. (Problem especialy for IBM Java, where "TLS" does not work as alias for other TLSv*)