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 2024/12/11 16:20:54 UTC

(james-project) 02/02: [FIX] POP3 UserCmdHandler should return error response when invalid username input

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 371f0c3bbfdd1b45c4785f5f5c229390d17ef56d
Author: Quan Tran <hq...@linagora.com>
AuthorDate: Tue Dec 10 11:54:01 2024 +0700

    [FIX] POP3 UserCmdHandler should return error response when invalid username input
    
    Was `Error dispatching command for request USER` on `java.lang.IllegalArgumentException: Domain parts ASCII chars must be a-z A-Z 0-9 - or _ in govmu,org`:
    ```json
    {
        "timestamp": "2024-12-10T04:32:03.703Z",
        "level": "ERROR",
        "thread": "pop3server-11",
        "mdc": {
            "charset": "US-ASCII",
            "protocol": "POP3",
            "sessionId": "6fec7ab7",
            "ip": "192.168.43.3"
        },
        "logger": "org.apache.james.protocols.api.handler.CommandDispatcher",
        "message": "Error dispatching command for request USER",
        "context": "default",
        "exception": "java.lang.IllegalArgumentException: Domain parts ASCII chars must be a-z A-Z 0-9 - or _ in govmu,org\n\tat com.google.common.base.Preconditions.checkArgument(Preconditions.java:220)\n\tat org.apache.james.core.Domain.of(Domain.java:58)\n\tat org.apache.james.core.Username.fromLocalPartWithDomain(Username.java:52)\n\tat org.apache.james.core.Username.of(Username.java:46)\n\tat org.apache.james.protocols.pop3.core.UserCmdHandler.user(UserCmdHandler.java:73)\n\tat org.a [...]
    }
    ```
---
 .../org/apache/james/protocols/pop3/core/UserCmdHandler.java  | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

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 62cacb94a5..c5952ae09c 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
@@ -70,9 +70,14 @@ public class UserCmdHandler extends AbstractPOP3CommandHandler implements CapaCa
         LOGGER.trace("USER command received");
         String parameters = request.getArgument();
         if (session.getHandlerState() == POP3Session.AUTHENTICATION_READY && parameters != null) {
-            session.setUsername(Username.of(parameters));
-            session.setHandlerState(POP3Session.AUTHENTICATION_USERSET);
-            return POP3Response.OK;
+            try {
+                session.setUsername(Username.of(parameters));
+                session.setHandlerState(POP3Session.AUTHENTICATION_USERSET);
+                return POP3Response.OK;
+            } catch (IllegalArgumentException e) {
+                LOGGER.info("USER command input error", e);
+                return POP3Response.ERR;
+            }
         } else {
             return POP3Response.ERR;
         }


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