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