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 d91703c871cd39e62c26989f1ca8568e6984453f Author: Benoit Tellier <[email protected]> AuthorDate: Tue Feb 23 12:05:00 2021 +0700 JAMES-3504 Log trace upon received POP3 commands Includes MDC context, it enables advanced debugging, as well allows to understand client behaviour. --- .../org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java | 1 + .../java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java | 5 ++++- .../java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java | 1 + .../java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java | 5 ++++- .../java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java | 1 + .../java/org/apache/james/protocols/pop3/core/StatCmdHandler.java | 4 ++++ .../java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java | 5 ++++- .../java/org/apache/james/protocols/pop3/core/TopCmdHandler.java | 4 ++++ .../java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java | 4 ++++ .../java/org/apache/james/protocols/pop3/core/UserCmdHandler.java | 5 ++++- 10 files changed, 31 insertions(+), 4 deletions(-) diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java index cd6bd61..8b1a48e 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java @@ -57,6 +57,7 @@ public abstract class AbstractPassCmdHandler extends RsetCmdHandler { } private Response doAuth(POP3Session session, Request request) { + LOGGER.trace("PASS command received"); String parameters = request.getArgument(); if (session.getHandlerState() == POP3Session.AUTHENTICATION_USERSET && parameters != null) { return doAuth(session, session.getUsername(), parameters); diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java index 747797f..0796771 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/NoopCmdHandler.java @@ -27,6 +27,8 @@ import org.apache.james.protocols.api.handler.CommandHandler; import org.apache.james.protocols.pop3.POP3Response; import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableSet; @@ -34,7 +36,7 @@ import com.google.common.collect.ImmutableSet; * Handles NOOP command */ public class NoopCmdHandler implements CommandHandler<POP3Session> { - + private static final Logger LOGGER = LoggerFactory.getLogger(NoopCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableSet.of("NOOP"); /** @@ -51,6 +53,7 @@ public class NoopCmdHandler implements CommandHandler<POP3Session> { } private Response noop(POP3Session session) { + LOGGER.trace("NOOP command received"); if (session.getHandlerState() == POP3Session.TRANSACTION) { return POP3Response.OK; } else { diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java index b213ac8..248cd4d 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java @@ -70,6 +70,7 @@ public class QuitCmdHandler implements CommandHandler<POP3Session> { } private Response quit(POP3Session session) { + LOGGER.trace("QUIT command received"); Response response = null; if (session.getHandlerState() == POP3Session.AUTHENTICATION_READY || session.getHandlerState() == POP3Session.AUTHENTICATION_USERSET) { return SIGN_OFF; diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java index 0167317..8544741 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RetrCmdHandler.java @@ -33,6 +33,8 @@ import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.protocols.pop3.POP3StreamResponse; import org.apache.james.protocols.pop3.mailbox.MessageMetaData; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -42,7 +44,7 @@ import com.google.common.collect.ImmutableSet; * Handles RETR command */ public class RetrCmdHandler implements CommandHandler<POP3Session> { - + private static final Logger LOGGER = LoggerFactory.getLogger(RetrCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableSet.of("RETR"); @VisibleForTesting static final Response SYNTAX_ERROR = new POP3Response(POP3Response.ERR_RESPONSE, "Usage: RETR [mail number]").immutable(); @@ -64,6 +66,7 @@ public class RetrCmdHandler implements CommandHandler<POP3Session> { } private Response retr(POP3Session session, Request request) { + LOGGER.trace("RETR command received"); POP3Response response = null; String parameters = request.getArgument(); if (session.getHandlerState() == POP3Session.TRANSACTION) { diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java index 87f2aa1..b74e4ec 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java @@ -59,6 +59,7 @@ public class RsetCmdHandler implements CommandHandler<POP3Session> { } private Response rset(POP3Session session) { + LOGGER.trace("RETR command received"); if (session.getHandlerState() == POP3Session.TRANSACTION) { stat(session); return POP3Response.OK; diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java index a2fbc74..09b3bdc 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StatCmdHandler.java @@ -31,6 +31,8 @@ import org.apache.james.protocols.pop3.POP3Response; import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.protocols.pop3.mailbox.MessageMetaData; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -39,6 +41,7 @@ import com.google.common.collect.ImmutableSet; * Handles STAT command */ public class StatCmdHandler implements CommandHandler<POP3Session> { + private static final Logger LOGGER = LoggerFactory.getLogger(StatCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableSet.of("STAT"); /** @@ -55,6 +58,7 @@ public class StatCmdHandler implements CommandHandler<POP3Session> { } private Response stat(POP3Session session) { + LOGGER.trace("STAT command received"); if (session.getHandlerState() == POP3Session.TRANSACTION) { List<MessageMetaData> uidList = session.getAttachment(POP3Session.UID_LIST, State.Transaction).orElse(ImmutableList.of()); diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java index d84f853..c242172 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/StlsCmdHandler.java @@ -30,6 +30,8 @@ import org.apache.james.protocols.pop3.POP3Response; import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.protocols.pop3.POP3StartTlsResponse; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableSet; @@ -38,7 +40,7 @@ import com.google.common.collect.ImmutableSet; * with the STSL command */ public class StlsCmdHandler implements CommandHandler<POP3Session>, CapaCapability { - + private static final Logger LOGGER = LoggerFactory.getLogger(StlsCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableSet.of("STLS"); private static final Set<String> CAPS = ImmutableSet.of("STLS"); @@ -54,6 +56,7 @@ public class StlsCmdHandler implements CommandHandler<POP3Session>, CapaCapabili } private Response stls(POP3Session session) { + LOGGER.trace("STLS command received"); // check if starttls is supported, the state is the right one and it was // not started before if (session.isStartTLSSupported() && session.getHandlerState() == POP3Session.AUTHENTICATION_READY && session.isTLSStarted() == false) { diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java index 7ffb13f..7351b20 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/TopCmdHandler.java @@ -35,6 +35,8 @@ import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.protocols.pop3.POP3StreamResponse; import org.apache.james.protocols.pop3.mailbox.MessageMetaData; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -43,6 +45,7 @@ import com.google.common.collect.ImmutableSet; * Handles TOP command */ public class TopCmdHandler extends RetrCmdHandler implements CapaCapability { + private static final Logger LOGGER = LoggerFactory.getLogger(TopCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableList.of("TOP"); private static final Set<String> CAPS = ImmutableSet.of("TOP"); @@ -68,6 +71,7 @@ public class TopCmdHandler extends RetrCmdHandler implements CapaCapability { } private Response top(POP3Session session, Request request) { + LOGGER.trace("TOP command received"); String parameters = request.getArgument(); if (parameters == null) { return SYNTAX_ERROR; diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java index 161934d..ef3aa8f 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UidlCmdHandler.java @@ -33,6 +33,8 @@ import org.apache.james.protocols.pop3.POP3Response; import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.protocols.pop3.mailbox.MessageMetaData; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -41,6 +43,7 @@ import com.google.common.collect.ImmutableSet; * Handles UIDL command */ public class UidlCmdHandler implements CommandHandler<POP3Session>, CapaCapability { + private static final Logger LOGGER = LoggerFactory.getLogger(UidlCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableSet.of("UIDL"); private static final Set<String> CAPS = ImmutableSet.of("UIDL"); @@ -59,6 +62,7 @@ public class UidlCmdHandler implements CommandHandler<POP3Session>, CapaCapabili } private Response uidl(POP3Session session, Request request) { + LOGGER.trace("UIDL command received"); POP3Response response = null; String parameters = request.getArgument(); if (session.getHandlerState() == POP3Session.TRANSACTION) { diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java index fe6e79a..a08780f 100644 --- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java +++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/UserCmdHandler.java @@ -29,6 +29,8 @@ import org.apache.james.protocols.api.handler.CommandHandler; import org.apache.james.protocols.pop3.POP3Response; import org.apache.james.protocols.pop3.POP3Session; import org.apache.james.util.MDCBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableSet; @@ -36,7 +38,7 @@ import com.google.common.collect.ImmutableSet; * Handles USER command */ public class UserCmdHandler implements CommandHandler<POP3Session>, CapaCapability { - + private static final Logger LOGGER = LoggerFactory.getLogger(UserCmdHandler.class); private static final Collection<String> COMMANDS = ImmutableSet.of("USER"); private static final Set<String> CAPS = ImmutableSet.of("USER"); @@ -55,6 +57,7 @@ public class UserCmdHandler implements CommandHandler<POP3Session>, CapaCapabili } private Response user(POP3Session session, Request request) { + LOGGER.trace("USER command received"); String parameters = request.getArgument(); if (session.getHandlerState() == POP3Session.AUTHENTICATION_READY && parameters != null) { session.setUsername(Username.of(parameters)); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
