This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch fix-inalid-user-in-ldap
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit d0f1329cb4cdadaa7f7c0e0494bf3446b0f19ac0
Author: Benoit TELLIER <btell...@linagora.com>
AuthorDate: Thu Nov 21 22:23:13 2024 +0100

    [FIX] Filter out invalid user in LDAP
    
    Today this makes listing crash!
---
 .../java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java
 
b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java
index 39b1409ec6..6b749be5b1 100644
--- 
a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java
+++ 
b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyLDAPUsersDAO.java
@@ -271,7 +271,14 @@ public class ReadOnlyLDAPUsersDAO implements UsersDAO, 
Configurable {
         String usernameAttribute = 
ldapConfiguration.getUsernameAttribute().orElse(ldapConfiguration.getUserIdAttribute());
         Optional<String> userName = 
Optional.ofNullable(userAttributes.getAttributeValue(usernameAttribute));
         return userName
-            .map(Username::of)
+            .flatMap(name -> {
+                try {
+                    return Optional.of(Username.of(name));
+                } catch (Exception e) {
+                    LOGGER.warn("Invalid username in the LDAP: {}", name, e);
+                    return Optional.empty();
+                }
+            })
             .map(username -> new ReadOnlyLDAPUser(username, userDN, 
ldapConnectionPool));
     }
 


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

Reply via email to