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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0a40a91ebd [ENHANCEMENT] DKIMVerify outputs logs and machine readable 
attributes
0a40a91ebd is described below

commit 0a40a91ebd680095f4694424b542aebea7a5b1af
Author: Benoit TELLIER <btell...@linagora.com>
AuthorDate: Fri Jun 20 12:55:31 2025 +0200

    [ENHANCEMENT] DKIMVerify outputs logs and machine readable attributes
    
     - Allows admin review of the DKIM verifications
     - Also eases writing logic atop the DKIM validation results
---
 .../main/java/org/apache/james/jdkim/mailets/DKIMVerify.java | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMVerify.java
 
b/server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMVerify.java
index 1d713230cd..fdfbf6e045 100644
--- 
a/server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMVerify.java
+++ 
b/server/mailet/dkim/src/main/java/org/apache/james/jdkim/mailets/DKIMVerify.java
@@ -34,6 +34,8 @@ import org.apache.mailet.AttributeName;
 import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 
@@ -51,8 +53,10 @@ import com.google.common.annotations.VisibleForTesting;
  * behaviour then set forceCRLF attribute to false.
  */
 public class DKIMVerify extends GenericMailet {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(DKIMVerify.class);
 
     public static final AttributeName DKIM_AUTH_RESULT = 
AttributeName.of("jDKIM.AUTHRESULT");
+    public static final AttributeName DKIM_AUTH_RESULT_BOOLEAN = 
AttributeName.of("jDKIM.AUTHRESULT.FLAG");
 
     @VisibleForTesting
     DKIMVerifier verifier;
@@ -76,6 +80,7 @@ public class DKIMVerify extends GenericMailet {
             if (res == null || res.isEmpty()) {
                 // neutral
                 mail.setAttribute(new Attribute(DKIM_AUTH_RESULT, 
AttributeValue.of("neutral (no signatures)")));
+                LOGGER.info("DKIM signature neutral (no signatures)");
             } else {
                 // pass
                 StringBuilder msg = new StringBuilder();
@@ -87,13 +92,18 @@ public class DKIMVerify extends GenericMailet {
                     msg.append(")");
                 }
                 mail.setAttribute(new Attribute(DKIM_AUTH_RESULT, 
AttributeValue.of(msg.toString())));
+                mail.setAttribute(new Attribute(DKIM_AUTH_RESULT_BOOLEAN, 
AttributeValue.of(true)));
+                LOGGER.info("DKIM signature {}", msg);
             }
         } catch (FailException e) {
             // fail
             String relatedRecordIdentity = 
Optional.ofNullable(e.getRelatedRecordIdentity())
                 .map(value -> "identity" + value + ":")
                 .orElse("");
-            mail.setAttribute(new Attribute(DKIM_AUTH_RESULT, 
AttributeValue.of("fail (" + relatedRecordIdentity + e.getMessage() + ")")));
+            String msg = "fail (" + relatedRecordIdentity + e.getMessage() + 
")";
+            mail.setAttribute(new Attribute(DKIM_AUTH_RESULT, 
AttributeValue.of(msg)));
+            mail.setAttribute(new Attribute(DKIM_AUTH_RESULT_BOOLEAN, 
AttributeValue.of(false)));
+            LOGGER.info("DKIM signature {}", msg);
         }
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to