X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FUserAdminLoginModule.java;h=269f509ed45d665ab4bb1b3dbcccefad21712d42;hb=12a285bfc5d33b64e39a1083a24b5d65515acf52;hp=a55247a1e3e4b146f4f6ca785831cc125cdb6543;hpb=468da207c5c4c2620f4e4d4a0c3deca64a5fd331;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java index a55247a1e..269f509ed 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java @@ -2,8 +2,8 @@ package org.argeo.cms.auth; import java.io.IOException; import java.security.PrivilegedAction; -import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -41,8 +41,8 @@ public class UserAdminLoginModule implements LoginModule { private CallbackHandler callbackHandler; private Map sharedState = null; - private List indexedUserProperties = Arrays - .asList(new String[] { LdapAttrs.uid.name(), LdapAttrs.mail.name(), LdapAttrs.cn.name() }); + private List indexedUserProperties = Arrays.asList( + new String[] { LdapAttrs.DN, LdapAttrs.mail.name(), LdapAttrs.uid.name(), LdapAttrs.authPassword.name() }); // private state private BundleContext bc; @@ -112,7 +112,7 @@ public class UserAdminLoginModule implements LoginModule { // throw new FailedLoginException("Invalid credentials"); if (!user.hasCredential(null, password)) return false; -// throw new FailedLoginException("Invalid credentials"); + // throw new FailedLoginException("Invalid credentials"); authenticatedUser = user; return true; } @@ -181,7 +181,7 @@ public class UserAdminLoginModule implements LoginModule { protected User searchForUser(UserAdmin userAdmin, String providedUsername) { try { // TODO check value null or empty - List collectedUsers = new ArrayList(); + Set collectedUsers = new HashSet<>(); // try dn User user = null; try { @@ -198,7 +198,7 @@ public class UserAdminLoginModule implements LoginModule { collectedUsers.add(user); } if (collectedUsers.size() == 1) - return collectedUsers.get(0); + return collectedUsers.iterator().next(); else if (collectedUsers.size() > 1) log.warn(collectedUsers.size() + " users for provided username" + providedUsername); return null;