Hello,
Is there any way a broker.xml's <broker-connections> <amqp-connection> uri
attribute parameter value can use the custom <password-codec>? Or would this be
considered a new feature?
For example, the following <amqp-connection> uri attribute's keyStorePassword
parameter value works because the value was generated using "bin/artemis mask
<password>":
<amqp-connection
uri="tcp://my-host:${artemis.port.broker}?sslEnabled=true;keyStorePath=${artemis.broker.keyStore.uri};keyStorePassword=ENC(3a34fd21b82bf2a822fa49a8d8fa115d);trustStorePath=${artemis.broker.trustStore.uri};trustStorePassword=ENC(3a34fd21b82bf2a822fa49a8d8fa115d);verifyHost=false"
name="host1-to-host2-mirror">
<mirror />
</amqp-connection>
It will not work if <password-codec> is defined and the ENC(<value>) is
compatible with it (see stack trace at the end of this e-mail). Note that my
custom <password-codec> does work with <connectors><connector> and
<acceptors><acceptor> encoded parameter values.
I am using Artemis 2.31.2.
Thank you,
Aaron
2024-06-24 22:42:11,562 ERROR [org.apache.activemq.artemis.core.server]
AMQ224000: Failure in initialisation
java.lang.IllegalArgumentException: AMQ219057: Error decoding password
at
org.apache.activemq.artemis.utils.ConfigurationHelper.getPasswordProperty(ConfigurationHelper.java:187)
~[artemis-core-client-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector.<init>(NettyConnector.java:410)
~[artemis-core-client-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory.createConnector(NettyConnectorFactory.java:50)
~[artemis-core-client-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.protocol.amqp.connect.AMQPBrokerConnectionManager.start(AMQPBrokerConnectionManager.java:74)
~[artemis-amqp-protocol-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.startProtocolServices(ActiveMQServerImpl.java:3548)
~[artemis-server-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart2(ActiveMQServerImpl.java:3501)
~[artemis-server-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:78)
[artemis-server-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:720)
[artemis-server-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:610)
[artemis-server-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:66)
[artemis-cli-2.31.2.jar:2.31.2]
at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:130)
[artemis-cli-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:219)
[artemis-cli-2.31.2.jar:2.31.2]
at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:165)
[artemis-cli-2.31.2.jar:2.31.2]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:?]
at
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:?]
at
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:157)
[artemis-boot.jar:2.31.2]
at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:64)
[artemis-boot.jar:2.31.2]
Caused by: java.lang.IllegalArgumentException: Password must be encrypted.
at
org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec$BlowfishAlgorithm.decode(DefaultSensitiveStringCodec.java:176)
~[artemis-commons-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec.decode(DefaultSensitiveStringCodec.java:66)
~[artemis-commons-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec.decode(DefaultSensitiveStringCodec.java:52)
~[artemis-commons-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.utils.PasswordMaskingUtil.resolveMask(PasswordMaskingUtil.java:67)
~[artemis-commons-2.31.2.jar:2.31.2]
at
org.apache.activemq.artemis.utils.ConfigurationHelper.getPasswordProperty(ConfigurationHelper.java:185)
~[artemis-core-client-2.31.2.jar:2.31.2]
... 18 more