Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/UserPersistence.java +2 −5 Original line number Diff line number Diff line Loading @@ -73,10 +73,7 @@ import java.security.Principal; import java.util.Collection; import java.util.Map; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.*; import ca.nrc.cadc.net.TransientException; import com.unboundid.ldap.sdk.DN; Loading @@ -91,7 +88,7 @@ public interface UserPersistence<T extends Principal> * @throws TransientException If an temporary, unexpected problem occurred. * @throws AccessControlException If the operation is not permitted. */ Map<String, String> getUsers() Map<String, PersonalDetails> getUsers() throws TransientException, AccessControlException; /** Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +15 −8 Original line number Diff line number Diff line Loading @@ -424,15 +424,16 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO * @return A map of string keys to string values. * @throws TransientException If an temporary, unexpected problem occurred. */ public Map<String, String> getUsers() public Map<String, PersonalDetails> getUsers() throws TransientException { final Map<String, String> users = new HashMap<String, String>(); final Map<String, PersonalDetails> users = new HashMap<String, PersonalDetails>(); try { final Filter filter = Filter.createPresenceFilter(LDAP_COMMON_NAME); final String[] attributes = new String[]{LDAP_COMMON_NAME, final Filter filter = Filter.createPresenceFilter(LDAP_UID); final String[] attributes = new String[]{LDAP_UID, LDAP_FIRST_NAME, LDAP_LAST_NAME, LDAP_NSACCOUNTLOCK}; Loading @@ -450,10 +451,16 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { if (!next.hasAttribute(LDAP_NSACCOUNTLOCK)) { users.put(next.getAttributeValue(LDAP_COMMON_NAME), next.getAttributeValue(LDAP_FIRST_NAME) + " " + next.getAttributeValue(LDAP_LAST_NAME)); final String trimmedFirstName = next.getAttributeValue(LDAP_FIRST_NAME).trim(); final String trimmedLastName = next.getAttributeValue(LDAP_LAST_NAME).trim(); final String trimmedUID = next.getAttributeValue(LDAP_UID).trim(); users.put(trimmedUID, new PersonalDetails(trimmedFirstName, trimmedLastName)); } } } Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserPersistence.java +2 −5 Original line number Diff line number Diff line Loading @@ -68,10 +68,7 @@ */ package ca.nrc.cadc.ac.server.ldap; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.*; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.net.TransientException; import com.unboundid.ldap.sdk.DN; Loading Loading @@ -100,7 +97,7 @@ public class LdapUserPersistence<T extends Principal> } } public Map<String, String> getUsers() public Map<String, PersonalDetails> getUsers() throws TransientException, AccessControlException { LdapUserDAO<T> userDAO = null; Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/UsersAction.java +2 −1 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ import java.util.Map; import javax.security.auth.Subject; import javax.servlet.http.HttpServletResponse; import ca.nrc.cadc.ac.PersonalDetails; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserRequest; import org.apache.log4j.Logger; Loading Loading @@ -278,7 +279,7 @@ public abstract class UsersAction * * @param users The Map of user IDs to names. */ protected final void writeUsers(final Map<String, String> users) protected final void writeUsers(final Map<String, PersonalDetails> users) throws IOException { response.setContentType(acceptedContentType); Loading projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/users/GetUsersActionTest.java +20 −10 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ package ca.nrc.cadc.ac.server.web.users; import ca.nrc.cadc.ac.PersonalDetails; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.auth.HttpPrincipal; import org.apache.log4j.Level; Loading Loading @@ -112,11 +113,13 @@ public class GetUsersActionTest createMock(HttpServletResponse.class); final UserPersistence<HttpPrincipal> mockUserPersistence = createMock(UserPersistence.class); final Map<String, String> userEntries = new HashMap<String, String>(); final Map<String, PersonalDetails> userEntries = new HashMap<String, PersonalDetails>(); for (int i = 1; i <= 5; i++) { userEntries.put("USER_" + i, "USER " + i); userEntries.put("USER_" + i, new PersonalDetails("USER", Integer.toString(i))); } final GetUsersAction testSubject = new GetUsersAction(null) Loading @@ -143,7 +146,7 @@ public class GetUsersActionTest testSubject.doAction(null, mockResponse); final JSONArray expected = new JSONArray("[{\"id\":\"USER_1\",\"name\":\"USER 1\"},{\"id\":\"USER_3\",\"name\":\"USER 3\"},{\"id\":\"USER_2\",\"name\":\"USER 2\"},{\"id\":\"USER_4\",\"name\":\"USER 4\"},{\"id\":\"USER_5\",\"name\":\"USER 5\"}]"); new JSONArray("[{\"id\":\"USER_1\",\"firstName\":\"USER\",\"lastName\":\"1\"},{\"id\":\"USER_3\",\"firstName\":\"USER\",\"lastName\":\"3\"},{\"id\":\"USER_2\",\"firstName\":\"USER\",\"lastName\":\"2\"},{\"id\":\"USER_4\",\"firstName\":\"USER\",\"lastName\":\"4\"},{\"id\":\"USER_5\",\"firstName\":\"USER\",\"lastName\":\"5\"}]"); final JSONArray result = new JSONArray(writer.toString()); JSONAssert.assertEquals(expected, result, true); Loading @@ -158,11 +161,13 @@ public class GetUsersActionTest createMock(HttpServletResponse.class); final UserPersistence<HttpPrincipal> mockUserPersistence = createMock(UserPersistence.class); final Map<String, String> userEntries = new HashMap<String, String>(); final Map<String, PersonalDetails> userEntries = new HashMap<String, PersonalDetails>(); for (int i = 1; i <= 5; i++) { userEntries.put("USER_" + i, "USER " + i); userEntries.put("USER_" + i, new PersonalDetails("USER", Integer.toString(i))); } final GetUsersAction testSubject = new GetUsersAction(null) Loading @@ -189,19 +194,24 @@ public class GetUsersActionTest final String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<users>\r\n" + " <user id=\"USER_1\">\r\n" + " <name>USER 1</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>1</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_3\">\r\n" + " <name>USER 3</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>3</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_2\">\r\n" + " <name>USER 2</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>2</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_4\">\r\n" + " <name>USER 4</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>4</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_5\">\r\n" + " <name>USER 5</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>5</lastName>\r\n" + " </user>\r\n" + "</users>\r\n"; final String result = writer.toString(); Loading Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/UserPersistence.java +2 −5 Original line number Diff line number Diff line Loading @@ -73,10 +73,7 @@ import java.security.Principal; import java.util.Collection; import java.util.Map; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.*; import ca.nrc.cadc.net.TransientException; import com.unboundid.ldap.sdk.DN; Loading @@ -91,7 +88,7 @@ public interface UserPersistence<T extends Principal> * @throws TransientException If an temporary, unexpected problem occurred. * @throws AccessControlException If the operation is not permitted. */ Map<String, String> getUsers() Map<String, PersonalDetails> getUsers() throws TransientException, AccessControlException; /** Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +15 −8 Original line number Diff line number Diff line Loading @@ -424,15 +424,16 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO * @return A map of string keys to string values. * @throws TransientException If an temporary, unexpected problem occurred. */ public Map<String, String> getUsers() public Map<String, PersonalDetails> getUsers() throws TransientException { final Map<String, String> users = new HashMap<String, String>(); final Map<String, PersonalDetails> users = new HashMap<String, PersonalDetails>(); try { final Filter filter = Filter.createPresenceFilter(LDAP_COMMON_NAME); final String[] attributes = new String[]{LDAP_COMMON_NAME, final Filter filter = Filter.createPresenceFilter(LDAP_UID); final String[] attributes = new String[]{LDAP_UID, LDAP_FIRST_NAME, LDAP_LAST_NAME, LDAP_NSACCOUNTLOCK}; Loading @@ -450,10 +451,16 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { if (!next.hasAttribute(LDAP_NSACCOUNTLOCK)) { users.put(next.getAttributeValue(LDAP_COMMON_NAME), next.getAttributeValue(LDAP_FIRST_NAME) + " " + next.getAttributeValue(LDAP_LAST_NAME)); final String trimmedFirstName = next.getAttributeValue(LDAP_FIRST_NAME).trim(); final String trimmedLastName = next.getAttributeValue(LDAP_LAST_NAME).trim(); final String trimmedUID = next.getAttributeValue(LDAP_UID).trim(); users.put(trimmedUID, new PersonalDetails(trimmedFirstName, trimmedLastName)); } } } Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserPersistence.java +2 −5 Original line number Diff line number Diff line Loading @@ -68,10 +68,7 @@ */ package ca.nrc.cadc.ac.server.ldap; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.*; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.net.TransientException; import com.unboundid.ldap.sdk.DN; Loading Loading @@ -100,7 +97,7 @@ public class LdapUserPersistence<T extends Principal> } } public Map<String, String> getUsers() public Map<String, PersonalDetails> getUsers() throws TransientException, AccessControlException { LdapUserDAO<T> userDAO = null; Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/UsersAction.java +2 −1 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ import java.util.Map; import javax.security.auth.Subject; import javax.servlet.http.HttpServletResponse; import ca.nrc.cadc.ac.PersonalDetails; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserRequest; import org.apache.log4j.Logger; Loading Loading @@ -278,7 +279,7 @@ public abstract class UsersAction * * @param users The Map of user IDs to names. */ protected final void writeUsers(final Map<String, String> users) protected final void writeUsers(final Map<String, PersonalDetails> users) throws IOException { response.setContentType(acceptedContentType); Loading
projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/users/GetUsersActionTest.java +20 −10 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ package ca.nrc.cadc.ac.server.web.users; import ca.nrc.cadc.ac.PersonalDetails; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.auth.HttpPrincipal; import org.apache.log4j.Level; Loading Loading @@ -112,11 +113,13 @@ public class GetUsersActionTest createMock(HttpServletResponse.class); final UserPersistence<HttpPrincipal> mockUserPersistence = createMock(UserPersistence.class); final Map<String, String> userEntries = new HashMap<String, String>(); final Map<String, PersonalDetails> userEntries = new HashMap<String, PersonalDetails>(); for (int i = 1; i <= 5; i++) { userEntries.put("USER_" + i, "USER " + i); userEntries.put("USER_" + i, new PersonalDetails("USER", Integer.toString(i))); } final GetUsersAction testSubject = new GetUsersAction(null) Loading @@ -143,7 +146,7 @@ public class GetUsersActionTest testSubject.doAction(null, mockResponse); final JSONArray expected = new JSONArray("[{\"id\":\"USER_1\",\"name\":\"USER 1\"},{\"id\":\"USER_3\",\"name\":\"USER 3\"},{\"id\":\"USER_2\",\"name\":\"USER 2\"},{\"id\":\"USER_4\",\"name\":\"USER 4\"},{\"id\":\"USER_5\",\"name\":\"USER 5\"}]"); new JSONArray("[{\"id\":\"USER_1\",\"firstName\":\"USER\",\"lastName\":\"1\"},{\"id\":\"USER_3\",\"firstName\":\"USER\",\"lastName\":\"3\"},{\"id\":\"USER_2\",\"firstName\":\"USER\",\"lastName\":\"2\"},{\"id\":\"USER_4\",\"firstName\":\"USER\",\"lastName\":\"4\"},{\"id\":\"USER_5\",\"firstName\":\"USER\",\"lastName\":\"5\"}]"); final JSONArray result = new JSONArray(writer.toString()); JSONAssert.assertEquals(expected, result, true); Loading @@ -158,11 +161,13 @@ public class GetUsersActionTest createMock(HttpServletResponse.class); final UserPersistence<HttpPrincipal> mockUserPersistence = createMock(UserPersistence.class); final Map<String, String> userEntries = new HashMap<String, String>(); final Map<String, PersonalDetails> userEntries = new HashMap<String, PersonalDetails>(); for (int i = 1; i <= 5; i++) { userEntries.put("USER_" + i, "USER " + i); userEntries.put("USER_" + i, new PersonalDetails("USER", Integer.toString(i))); } final GetUsersAction testSubject = new GetUsersAction(null) Loading @@ -189,19 +194,24 @@ public class GetUsersActionTest final String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<users>\r\n" + " <user id=\"USER_1\">\r\n" + " <name>USER 1</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>1</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_3\">\r\n" + " <name>USER 3</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>3</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_2\">\r\n" + " <name>USER 2</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>2</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_4\">\r\n" + " <name>USER 4</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>4</lastName>\r\n" + " </user>\r\n" + " <user id=\"USER_5\">\r\n" + " <name>USER 5</name>\r\n" + " <firstName>USER</firstName>\r\n" + " <lastName>5</lastName>\r\n" + " </user>\r\n" + "</users>\r\n"; final String result = writer.toString(); Loading