X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fldap%2FArgeoSecurityDaoLdap.java;fp=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fldap%2FArgeoSecurityDaoLdap.java;h=bf4beb0e8bfa00299bfdbf83528245ca564018bf;hb=136dab5338b5f731b285d17c804861bd5e5a9b5c;hp=6aa31bbdc6620ef05dd8e354af0df6a0ca7f9718;hpb=43e77c157692d040ad20ea9c15d236b57ce0a9ac;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/ldap/ArgeoSecurityDaoLdap.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/ldap/ArgeoSecurityDaoLdap.java index 6aa31bbdc..bf4beb0e8 100644 --- a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/ldap/ArgeoSecurityDaoLdap.java +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/ldap/ArgeoSecurityDaoLdap.java @@ -20,9 +20,11 @@ import static org.argeo.security.core.ArgeoUserDetails.createSimpleArgeoUser; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Random; +import java.util.Set; +import java.util.TreeSet; import javax.naming.Name; import javax.naming.NamingException; @@ -130,7 +132,7 @@ public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean } } - public synchronized void create(ArgeoUser user) { + public synchronized void createUser(ArgeoUser user) { userDetailsManager.createUser(new ArgeoUserDetails(user)); } @@ -154,7 +156,7 @@ public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean // } @SuppressWarnings("unchecked") - public synchronized List listUsers() { + public synchronized Set listUsers() { List usernames = (List) ldapTemplate.listBindings( new DistinguishedName(userBase), new ContextMapper() { public Object mapFromContext(Object ctxArg) { @@ -163,47 +165,47 @@ public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean } }); - List lst = new ArrayList(); + TreeSet lst = new TreeSet(); for (String username : usernames) { lst.add(createSimpleArgeoUser(getDetails(username))); } - return lst; + return Collections.unmodifiableSortedSet(lst); } @SuppressWarnings("unchecked") - public List listEditableRoles() { - return (List) ldapTemplate.listBindings(groupBase, - new ContextMapper() { + public Set listEditableRoles() { + return Collections.unmodifiableSortedSet(new TreeSet( + ldapTemplate.listBindings(groupBase, new ContextMapper() { public Object mapFromContext(Object ctxArg) { String groupName = ((DirContextAdapter) ctxArg) .getStringAttribute(groupRoleAttributeName); String roleName = convertGroupToRole(groupName); return roleName; } - }); + }))); } @SuppressWarnings("unchecked") - public List listUsersInRole(String role) { - return (List) ldapTemplate.lookup( + public Set listUsersInRole(String role) { + return (Set) ldapTemplate.lookup( buildGroupDn(convertRoleToGroup(role)), new ContextMapper() { public Object mapFromContext(Object ctxArg) { DirContextAdapter ctx = (DirContextAdapter) ctxArg; String[] userDns = ctx .getStringAttributes(groupMemberAttributeName); - List lst = new ArrayList(); + TreeSet set = new TreeSet(); for (String userDn : userDns) { DistinguishedName dn = new DistinguishedName(userDn); String username = dn .getValue(usernameAttributeName); - lst.add(createSimpleArgeoUser(getDetails(username))); + set.add(createSimpleArgeoUser(getDetails(username))); } - return lst; + return Collections.unmodifiableSortedSet(set); } }); } - public synchronized void update(ArgeoUser user) { + public synchronized void updateUser(ArgeoUser user) { ArgeoUserDetails argeoUserDetails = new ArgeoUserDetails(user); userDetailsManager.updateUser(new ArgeoUserDetails(user)); // refresh logged in user @@ -215,7 +217,7 @@ public class ArgeoSecurityDaoLdap implements ArgeoSecurityDao, InitializingBean } } - public synchronized void delete(String username) { + public synchronized void deleteUser(String username) { userDetailsManager.deleteUser(username); }