Dries Harnie created ARTEMIS-4420:
-------------------------------------

             Summary: User authentication leaks into non-Artemis servlets
                 Key: ARTEMIS-4420
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4420
             Project: ActiveMQ Artemis
          Issue Type: Bug
    Affects Versions: 2.30.0
            Reporter: Dries Harnie


ActiveMQ Artemis supports audit logs, which log all administrative actions that 
happen on the broker.
These logs identify the "current user" for an administrative access [by one of 
two 
methods|https://github.com/apache/activemq-artemis/blob/main/artemis-commons/src/main/java/org/apache/activemq/artemis/logs/AuditLogger.java#L67-L73]:
 # The {{Subject}} associated with the current security manager context, or
 # A {{{}ThreadLocal<Subject>{}}}, which is set by JolokiaFilter as part of 
interaction with the admin console.

For a non-Artemis servlet such as [the metrics 
plugin|https://github.com/rh-messaging/artemis-prometheus-metrics-plugin], this 
{{ThreadLocal}} is set to whatever {{Subject}} made the previous request on 
this thread. This leads to situations where metric accesses are logged as being 
done by ghost users.

To reproduce the issue:
 # Set up Artemis with the default admin/admin user and [the metrics 
plugin|https://github.com/rh-messaging/artemis-prometheus-metrics-plugin].
 # Enable audit logging ({{{}logger.audit_base{}}} should be at {{INFO}} level)
 # Tail -f the audit log and start the server
 # Log in to the admin console
 # Observe that a lot of audit logs fly by for {*}admin(amq)@127.0.0.1{*}.
 # Access the metrics with eg {{{}curl http://localhost:8161/metrics/{}}}.
 # Observe that a lot of audit logs fly by for {*}admin(amq)@127.0.0.1{*}, even 
though these requests are completely anonymous.

 

I think the solution involves a modification to 
{{org.apache.activemq.artemis.component.JolokiaFilter}} but I do not understand 
the purpose of the code after the {{doFilter}} invocation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to