This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 57bd541d1086ff05d8385d32006ffb50d951b522
Author: Benoit TELLIER <[email protected]>
AuthorDate: Thu Mar 5 16:38:04 2026 +0100

    [ENHANCEMENT] Audit trail: message deletion
---
 .../apache/james/mailbox/cassandra/DeleteMessageListener.java | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
index 59278aad9b..7c18bbc696 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java
@@ -62,9 +62,11 @@ import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.ThreadId;
 import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.mail.MessageMapper;
+import org.apache.james.util.AuditTrail;
 import org.apache.james.util.streams.Limit;
 import org.reactivestreams.Publisher;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
 import reactor.core.publisher.Flux;
@@ -208,6 +210,15 @@ public class DeleteMessageListener implements 
EventListener.ReactiveGroupEventLi
     }
 
     private Mono<Void> dispatchMessageContentDeletionEvent(MailboxId 
mailboxId, Username owner, MessageRepresentation message) {
+        AuditTrail.entry()
+            .action("DELETION")
+            .username(owner::asString)
+            .parameters(() -> ImmutableMap.of(
+                "mailboxId", mailboxId.serialize(),
+                "messageId", message.getMessageId().serialize(),
+                "size", Long.toString(message.getSize())))
+            .log("Message deleted");
+
         return 
Mono.from(contentDeletionEventBus.dispatch(EventFactory.messageContentDeleted()
             .randomEventId()
             .user(owner)


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

Reply via email to