You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2020/06/08 03:12:28 UTC

[james-project] 07/16: JAMES-3196 CanSendFromImpl: log unexpected exception

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

commit 24fbe6844f8b25d03435f5bb61b2888697b95d90
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri May 29 09:13:19 2020 +0700

    JAMES-3196 CanSendFromImpl: log unexpected exception
    
    RRT resolution fails upon reads if the address feeded is invalid, or
    if a user has too much recursive mappings level.
    
    In any case this is some valuable audit information that could allow
    diagnosing alias related issues early, we should emit a WARN log for
    the admin to be aware of it.
---
 .../src/main/java/org/apache/james/rrt/lib/CanSendFromImpl.java  | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/CanSendFromImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/CanSendFromImpl.java
index 8f7f70a..0293914 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/CanSendFromImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/CanSendFromImpl.java
@@ -35,6 +35,8 @@ import org.apache.james.rrt.api.AliasReverseResolver;
 import org.apache.james.rrt.api.CanSendFrom;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CanSendFromImpl implements CanSendFrom {
 
@@ -43,7 +45,9 @@ public class CanSendFromImpl implements CanSendFrom {
         List<Domain> fetch(Username user);
     }
 
-    public static final EnumSet<Mapping.Type> ALIAS_TYPES_ACCEPTED_IN_FROM = EnumSet.of(Alias, DomainAlias);
+    private static final Logger LOGGER = LoggerFactory.getLogger(CanSendFromImpl.class);
+    private static final EnumSet<Mapping.Type> ALIAS_TYPES_ACCEPTED_IN_FROM = EnumSet.of(Alias, DomainAlias);
+
     private final RecipientRewriteTable recipientRewriteTable;
     private final AliasReverseResolver aliasReverseResolver;
 
@@ -58,6 +62,9 @@ public class CanSendFromImpl implements CanSendFrom {
         try {
             return connectedUser.equals(fromUser) || emailIsAnAliasOfTheConnectedUser(connectedUser, fromUser);
         } catch (RecipientRewriteTableException | RecipientRewriteTable.ErrorMappingException e) {
+            LOGGER.warn("Error upon {} mapping resolution for {}. You might want to audit mapping content for this mapping entry. ",
+                fromUser.asString(),
+                connectedUser.asString());
             return false;
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org