From: mbaudier Date: Sat, 19 Aug 2017 15:53:16 +0000 (+0200) Subject: Fix number of collected users when two indexed properties are equals X-Git-Tag: argeo-commons-2.1.70~59 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=d32a1083e79ab2a03cd6a37450cfaa3772bc574c;p=lgpl%2Fargeo-commons.git Fix number of collected users when two indexed properties are equals (e.g. mail and uid) --- 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..8124c7d0f 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; @@ -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;