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 <hqt...@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-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org

Reply via email to