You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/02/25 09:06:52 UTC

[james-project] 04/12: JAMES-3504 Log trace upon received POP3 commands

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 <bt...@linagora.com>
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: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org