[ 
https://issues.apache.org/jira/browse/CASSANDRA-20208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17914100#comment-17914100
 ] 

Dmitry Konstantinov commented on CASSANDRA-20208:
-------------------------------------------------

[~smiklosovic] thank you for fixing it.
LGTM. I have also tested the change manually - it works. Sorry, I cannot give 
you a hand with committing as a non-committer :)
Should we apply it not only to trunk but at least to 5.0.x  and, potentially, 
to 4.x too?


> audit_logging_options parameters are not sanitized when loaded from a 
> configuration file on startup
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-20208
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20208
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Observability/Logging
>            Reporter: Dmitry Konstantinov
>            Assignee: Stefan Miklosovic
>            Priority: Normal
>             Fix For: 5.x
>
>         Attachments: audit_filtering_state.png
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> based on the discussion in 
> [https://lists.apache.org/thread/3whc30bqfcr1vgwv73zwlv74l2v3c0gt]
> a configuration like this:
> {code:java}
> audit_logging_options:
>   enabled: true
>   logger:
>     - class_name: FileAuditLogger
>   included_categories: DCL, ERROR, AUTH {code}
> is not sanitized when it is loaded on startup from cassandra.yaml file - 
> spaces here are remaining: " ERROR", " AUTH" after parsing. As a result the 
> audit logs filtering works not in a way as a user may expect and it is hard 
> to troubleshoot:
> !audit_filtering_state.png|width=400!
> When we run nodetool enableauditlog the following logic is invoked: 
> [https://github.com/apache/cassandra/blob/cassandra-4.1.7/src/java/org/apache/cassandra/service/StorageService.java#L6459]
>  which rebuild AuditLogOptions using builder API.AuditLogOption.build() has 
> sanitisation logic which does the trimming: 
> [https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/audit/AuditLogOptions.java#L235]
>  
> org.apache.cassandra.config.Config#audit_logging_options is created a generic 
> reflective code which does not use the builder, so there is no trimming 
> during a startup.
> It can be fixed by adding sanitisation during the startup parsing too to make 
> the behaviour more consistent and less error prone.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to