Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/UserPersistence.java +2 −1 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ package ca.nrc.cadc.ac.server; import java.security.AccessControlException; import java.security.Principal; import java.util.Collection; import java.util.Map; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserAlreadyExistsException; Loading @@ -90,7 +91,7 @@ public interface UserPersistence<T extends Principal> * @throws TransientException If an temporary, unexpected problem occurred. * @throws AccessControlException If the operation is not permitted. */ Collection<String> getUserNames() Map<String, String> getUsers() throws TransientException, AccessControlException; /** Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +32 −25 Original line number Diff line number Diff line Loading @@ -418,49 +418,54 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO } /** * Get all group names. * Get all users. This will query the main tree only, and will return the * user name as the map's key, with the user's full name as the value. * * @return A collection of strings * @return A map of string keys to string values. * @throws TransientException If an temporary, unexpected problem occurred. */ public Collection<String> getUserNames() public Map<String, String> getUsers() throws TransientException { final Map<String, String> users = new HashMap<String, String>(); try { Filter filter = Filter.createPresenceFilter(LDAP_COMMON_NAME); String[] attributes = new String[]{LDAP_COMMON_NAME, final Filter filter = Filter.createPresenceFilter(LDAP_COMMON_NAME); final String[] attributes = new String[]{LDAP_COMMON_NAME, LDAP_FIRST_NAME, LDAP_LAST_NAME, LDAP_NSACCOUNTLOCK}; SearchRequest searchRequest = new SearchRequest(config.getGroupsDN(), final SearchRequest searchRequest = new SearchRequest(config.getUsersDN(), SearchScope.SUB, filter, attributes); SearchResult searchResult = null; try { searchResult = getConnection().search(searchRequest); } catch (LDAPSearchException e) { if (e.getResultCode() == ResultCode.NO_SUCH_OBJECT) { logger.debug("Could not find groups root", e); throw new IllegalStateException("Could not find groups root"); } } final SearchResult searchResult = getConnection().search(searchRequest); LdapDAO.checkLdapResult(searchResult.getResultCode()); List<String> groupNames = new ArrayList<String>(); for (SearchResultEntry next : searchResult.getSearchEntries()) { if (!next.hasAttribute(LDAP_NSACCOUNTLOCK)) { groupNames.add(next.getAttributeValue(LDAP_COMMON_NAME)); users.put(next.getAttributeValue(LDAP_COMMON_NAME), next.getAttributeValue(LDAP_FIRST_NAME) + " " + next.getAttributeValue(LDAP_LAST_NAME)); } } } catch (LDAPSearchException e) { if (e.getResultCode() == ResultCode.NO_SUCH_OBJECT) { final String message = "Could not find users root"; logger.debug(message, e); throw new IllegalStateException(message); } } return groupNames; } catch (LDAPException e1) { Loading @@ -469,6 +474,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO throw new IllegalStateException("Unexpected exception: " + e1 .getMatchedDN(), e1); } return users; } /** Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserPersistence.java +4 −4 Original line number Diff line number Diff line Loading @@ -73,12 +73,13 @@ import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.net.TransientException; import com.unboundid.ldap.sdk.DN; import java.security.AccessControlException; import java.security.Principal; import java.util.Collection; import java.util.Map; import org.apache.log4j.Logger; public class LdapUserPersistence<T extends Principal> Loading @@ -99,15 +100,14 @@ public class LdapUserPersistence<T extends Principal> } } public Collection<String> getUserNames() public Map<String, String> getUsers() throws TransientException, AccessControlException { LdapUserDAO<T> userDAO = null; try { userDAO = new LdapUserDAO<T>(config); Collection<String> ret = userDAO.getUserNames(); return ret; return userDAO.getUsers(); } finally { Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/GetUsersAction.java +1 −1 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ public class GetUsersAction extends UsersAction { final UserPersistence userPersistence = getUserPersistence(); writeUsers(userPersistence.getUserNames()); writeUsers(userPersistence.getUsers()); return null; } } projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/UsersAction.java +4 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ import java.security.AccessControlException; import java.security.Principal; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.Collection; import java.util.Map; import javax.security.auth.Subject; import javax.servlet.http.HttpServletResponse; Loading Loading @@ -274,11 +274,11 @@ public abstract class UsersAction } /** * Write out a list of users as this Action's specified content type. * Write out a Map of users as this Action's specified content type. * * @param users The Collection of user entries. * @param users The Map of user IDs to names. */ protected final void writeUsers(final Collection<String> users) protected final void writeUsers(final Map<String, String> users) throws IOException { response.setContentType(acceptedContentType); Loading Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/UserPersistence.java +2 −1 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ package ca.nrc.cadc.ac.server; import java.security.AccessControlException; import java.security.Principal; import java.util.Collection; import java.util.Map; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserAlreadyExistsException; Loading @@ -90,7 +91,7 @@ public interface UserPersistence<T extends Principal> * @throws TransientException If an temporary, unexpected problem occurred. * @throws AccessControlException If the operation is not permitted. */ Collection<String> getUserNames() Map<String, String> getUsers() throws TransientException, AccessControlException; /** Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +32 −25 Original line number Diff line number Diff line Loading @@ -418,49 +418,54 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO } /** * Get all group names. * Get all users. This will query the main tree only, and will return the * user name as the map's key, with the user's full name as the value. * * @return A collection of strings * @return A map of string keys to string values. * @throws TransientException If an temporary, unexpected problem occurred. */ public Collection<String> getUserNames() public Map<String, String> getUsers() throws TransientException { final Map<String, String> users = new HashMap<String, String>(); try { Filter filter = Filter.createPresenceFilter(LDAP_COMMON_NAME); String[] attributes = new String[]{LDAP_COMMON_NAME, final Filter filter = Filter.createPresenceFilter(LDAP_COMMON_NAME); final String[] attributes = new String[]{LDAP_COMMON_NAME, LDAP_FIRST_NAME, LDAP_LAST_NAME, LDAP_NSACCOUNTLOCK}; SearchRequest searchRequest = new SearchRequest(config.getGroupsDN(), final SearchRequest searchRequest = new SearchRequest(config.getUsersDN(), SearchScope.SUB, filter, attributes); SearchResult searchResult = null; try { searchResult = getConnection().search(searchRequest); } catch (LDAPSearchException e) { if (e.getResultCode() == ResultCode.NO_SUCH_OBJECT) { logger.debug("Could not find groups root", e); throw new IllegalStateException("Could not find groups root"); } } final SearchResult searchResult = getConnection().search(searchRequest); LdapDAO.checkLdapResult(searchResult.getResultCode()); List<String> groupNames = new ArrayList<String>(); for (SearchResultEntry next : searchResult.getSearchEntries()) { if (!next.hasAttribute(LDAP_NSACCOUNTLOCK)) { groupNames.add(next.getAttributeValue(LDAP_COMMON_NAME)); users.put(next.getAttributeValue(LDAP_COMMON_NAME), next.getAttributeValue(LDAP_FIRST_NAME) + " " + next.getAttributeValue(LDAP_LAST_NAME)); } } } catch (LDAPSearchException e) { if (e.getResultCode() == ResultCode.NO_SUCH_OBJECT) { final String message = "Could not find users root"; logger.debug(message, e); throw new IllegalStateException(message); } } return groupNames; } catch (LDAPException e1) { Loading @@ -469,6 +474,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO throw new IllegalStateException("Unexpected exception: " + e1 .getMatchedDN(), e1); } return users; } /** Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserPersistence.java +4 −4 Original line number Diff line number Diff line Loading @@ -73,12 +73,13 @@ import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.net.TransientException; import com.unboundid.ldap.sdk.DN; import java.security.AccessControlException; import java.security.Principal; import java.util.Collection; import java.util.Map; import org.apache.log4j.Logger; public class LdapUserPersistence<T extends Principal> Loading @@ -99,15 +100,14 @@ public class LdapUserPersistence<T extends Principal> } } public Collection<String> getUserNames() public Map<String, String> getUsers() throws TransientException, AccessControlException { LdapUserDAO<T> userDAO = null; try { userDAO = new LdapUserDAO<T>(config); Collection<String> ret = userDAO.getUserNames(); return ret; return userDAO.getUsers(); } finally { Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/GetUsersAction.java +1 −1 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ public class GetUsersAction extends UsersAction { final UserPersistence userPersistence = getUserPersistence(); writeUsers(userPersistence.getUserNames()); writeUsers(userPersistence.getUsers()); return null; } }
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/UsersAction.java +4 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ import java.security.AccessControlException; import java.security.Principal; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.Collection; import java.util.Map; import javax.security.auth.Subject; import javax.servlet.http.HttpServletResponse; Loading Loading @@ -274,11 +274,11 @@ public abstract class UsersAction } /** * Write out a list of users as this Action's specified content type. * Write out a Map of users as this Action's specified content type. * * @param users The Collection of user entries. * @param users The Map of user IDs to names. */ protected final void writeUsers(final Collection<String> users) protected final void writeUsers(final Map<String, String> users) throws IOException { response.setContentType(acceptedContentType); Loading