[
https://issues.apache.org/jira/browse/ARTEMIS-5163?focusedWorklogId=986601&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-986601
]
ASF GitHub Bot logged work on ARTEMIS-5163:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 09/Oct/25 17:06
Start Date: 09/Oct/25 17:06
Worklog Time Spent: 10m
Work Description: jbertram commented on code in PR #5956:
URL: https://github.com/apache/activemq-artemis/pull/5956#discussion_r2417410995
##########
artemis-core-client/src/main/java/org/apache/activemq/artemis/spi/core/protocol/RemotingConnection.java:
##########
@@ -219,6 +220,16 @@ default void disconnect(DisconnectReason reason, String
targetNodeID, TransportC
*/
Subject getSubject();
+ /**
+ * sets the associated certificates for this connection
+ */
+ void setCertificates(X509Certificate[] certificates);
Review Comment:
@JeanLucGraphalo, to this end check out
`org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection`.
These methods should probably go here and then you can use `instanceof` in
`CertificateUtil`.
Issue Time Tracking
-------------------
Worklog Id: (was: 986601)
Time Spent: 2.5h (was: 2h 20m)
> Artemis fails to send mqtt will message using mutual TLS
> --------------------------------------------------------
>
> Key: ARTEMIS-5163
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5163
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: MQTT
> Affects Versions: 2.31.2, 2.33.0, 2.38.0, 2.39.0, 2.42.0
> Reporter: Olaf Gustav
> Priority: Major
> Labels: pull-request-available
> Time Spent: 2.5h
> Remaining Estimate: 0h
>
> As discussed in the user mailing list, the MQTT broker fails to sent the
> provided will message when using mutual TLS.
> +set-up for testing:+
> * ActiveMQ Artemis 2.33 as MQTT broker
> * Artemis runs on jdk-21
> * clients are authenticated using mutual TLS
> * certificate DN is used to map to a user and eventually to the configured
> roles
> +issue:+
> During testing we discovered, that the provided will message is not sent as
> expected. We got the following error messages:
> {code:none}
> WARN [org.apache.activemq.artemis.core.server] AMQ222216: Security problem
> while authenticating: AMQ229031: Unable to validate user from /
> 127.0.0.1:51770. Username: null; SSL certificate subject DN: unavailable
> ERROR [org.apache.activemq.artemis.core.protocol.mqtt] AMQ834007:
> Authorization failure sending will message: AMQ229031: Unable to validate
> user from / 127.0.0.1:51770. Username: null; SSL certificate subject DN:
> unavailable
> {code}
> I did some research in the code base. The class
> *org.apache.activemq.artemis.core.remoting.CertificateUtil* retrieves the
> certificate subject DN based on the actual client certificate provided by an
> existing connection. When trying to send a mqtt will message, there is no
> connection to the client anymore. Consequently, the broker fails to get the
> DN. Since the subject DN serves as the key in the authentication cache
> ({*}org.apache.activemq.artemis.core.security.impl. SecurityStoreImpl{*}),
> the will message fails to be checked against access permissions.
> As a workaround, I used the RemotingConnection.clientID as authentication
> cache key instead of the DN. That works as long as the parameter
> *security-invalidation-interval* is properly defined, that means
> {{{}security-invalidation-interval >> sessionExpiryInterval{}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact