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 07a3f487c0092c13e0acad040efdb8ee6cd52558 Author: Benoit Tellier <[email protected]> AuthorDate: Fri May 29 09:06:42 2020 +0700 JAMES-3196 MailetContainer: Log correlation for sender aliases Debugging can be hard when sender relies on aliases: we can not easily link them to their main address within the mailet-container. As a result, it is easy to miss user-related emails upon audit. This log ensures the sender alias could be correlated with the main user address. --- .../org/apache/james/mailetcontainer/impl/LocalResources.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java index bd41f84..a883a75 100644 --- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java +++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/LocalResources.java @@ -37,12 +37,15 @@ import org.apache.james.rrt.api.RecipientRewriteTableException; import org.apache.james.rrt.lib.Mapping; import org.apache.james.user.api.UsersRepository; import org.apache.james.user.api.UsersRepositoryException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.github.fge.lambdas.Throwing; import com.github.steveash.guavate.Guavate; class LocalResources { private static final EnumSet<Mapping.Type> ALIAS_TYPES = EnumSet.of(Mapping.Type.Alias, Mapping.Type.DomainAlias); + public static final Logger LOGGER = LoggerFactory.getLogger(LocalResources.class); private final UsersRepository localUsers; private final DomainList domains; @@ -130,6 +133,9 @@ class LocalResources { .asStream() .map(mapping -> mapping.asMailAddress() .orElseThrow(() -> new IllegalStateException(String.format("Can not compute address for mapping %s", mapping.asString())))) - .anyMatch(Throwing.predicate(this::isLocaluser).sneakyThrow()); + .filter(Throwing.predicate(this::isLocaluser).sneakyThrow()) + .peek(ownerAddress -> LOGGER.debug("{} belongs to {} local user", mailAddress.asString(), ownerAddress.asString())) + .findFirst() + .isPresent(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
