Loading cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +15 −11 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.client.GroupMemberships; import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.DNPrincipal; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.auth.NumericPrincipal; Loading Loading @@ -394,10 +395,9 @@ public class LdapUserDAO extends LdapDAO DN userDN = getUserDN(userID.getName(), usersDN); AddRequest addRequest = new AddRequest(userDN, attributes); LDAPConnection foo = getReadWriteConnection(); logger.debug("RW connection: " + foo.getConnectionPoolName()); LDAPResult result = foo.add(addRequest); LDAPResult result = getReadWriteConnection().add(addRequest); LdapDAO.checkLdapResult(result.getResultCode()); logger.info("added " + userID.getName() + " to " + usersDN); } catch (LDAPException e) { Loading Loading @@ -561,6 +561,7 @@ public class LdapUserDAO extends LdapDAO user.personalDetails.institute = searchResult.getAttributeValue(LDAP_INSTITUTE); } logger.info("got " + userID.getName() + " from " + usersDN); return user; } Loading Loading @@ -968,7 +969,9 @@ public class LdapUserDAO extends LdapDAO } try { return getUser(user.getHttpPrincipal()); User ret = getUser(user.getHttpPrincipal()); logger.info("updated " + user.getHttpPrincipal().getName()); return ret; } catch (UserNotFoundException e) { Loading Loading @@ -1180,25 +1183,25 @@ public class LdapUserDAO extends LdapDAO DN getUserDN(User user) throws UserNotFoundException, TransientException { NumericPrincipal numericPrincipal = new NumericPrincipal(user.getID().getUUID()); String searchField = userLdapAttrib.get(numericPrincipal); Principal userID = user.getHttpPrincipal(); String searchField = userLdapAttrib.get(userID.getClass()); if (searchField == null) { throw new IllegalArgumentException( "Unsupported principal type " + numericPrincipal.getClass()); "Unsupported principal type " + userID.getClass()); } // change the DN to be in the 'java' format Filter filter; // if (user.getUserID() instanceof X500Principal) // if (userID instanceof X500Principal) // { // X500Principal orderedPrincipal = AuthenticationUtil.getOrderedForm( // (X500Principal) user.getUserID()); // (X500Principal) userID); // filter = Filter.createEqualityFilter(searchField, orderedPrincipal.toString()); // } // else // { filter = Filter.createEqualityFilter(searchField, numericPrincipal.getName()); filter = Filter.createEqualityFilter(searchField, userID.getName()); // } logger.debug("search filter: " + filter); Loading @@ -1208,6 +1211,7 @@ public class LdapUserDAO extends LdapDAO SearchRequest searchRequest = new SearchRequest( config.getUsersDN(), SearchScope.ONE, filter, LDAP_ENTRYDN); searchResult = getReadOnlyConnection().searchForEntry(searchRequest); logger.info("getUserDN: got " + userID.getName() + " from " + config.getUsersDN()); } catch (LDAPException e) { Loading @@ -1216,7 +1220,7 @@ public class LdapUserDAO extends LdapDAO if (searchResult == null) { String msg = "User not found " + user.getID().getURI(); String msg = "User not found " + userID.getName() + " in " + config.getUsersDN(); logger.debug(msg); throw new UserNotFoundException(msg); } Loading cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +90 −127 Original line number Diff line number Diff line Loading @@ -125,7 +125,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest public static void setUpBeforeClass() throws Exception { Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG); Log4jInit.setLevel("ca.nrc.cadc.ac", Level.INFO); // get the configuration of the development server from and config files... config = getLdapConfig(); Loading Loading @@ -213,36 +213,36 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); // add user using X500Principal X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); final User x500Expected = new User(); x500Expected.getIdentities().add(x500Principal); x500Expected.personalDetails = new PersonalDetails("foo", "bar"); final UserRequest x500UserRequest = new UserRequest(x500Expected, "123456".toCharArray()); // do everything as owner Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { try { final LdapUserDAO userDAO = getUserDAO(); userDAO.addUser(x500UserRequest); final User actual = userDAO.getUser(userID); check(x500Expected, actual); return null; } catch (Exception e) { throw new Exception("Problems", e); } } }); // X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); // // final User x500Expected = new User(); // x500Expected.getIdentities().add(x500Principal); // // x500Expected.personalDetails = new PersonalDetails("foo", "bar"); // // final UserRequest x500UserRequest = new UserRequest(x500Expected, "123456".toCharArray()); // // // do everything as owner // Subject.doAs(subject, new PrivilegedExceptionAction<Object>() // { // public Object run() throws Exception // { // try // { // final LdapUserDAO userDAO = getUserDAO(); // userDAO.addUser(x500UserRequest); // // final User actual = userDAO.getUser(x500UserRequest.getUser().getHttpPrincipal()); // check(x500Expected, actual); // // return null; // } // catch (Exception e) // { // throw new Exception("Problems", e); // } // } // }); // TODO should test passing in both Http and X500 Principals } Loading @@ -250,7 +250,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of addPendingUser method, of class LdapUserDAO. */ // @Test @Test public void testAddPendingUser() throws Exception { // add user using HttpPrincipal Loading Loading @@ -294,36 +294,36 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); // add user using X500Principal final X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); final User x500Expected = new User(); x500Expected.getIdentities().add(x500Principal); x500Expected.personalDetails = pd; userRequest = new UserRequest(x500Expected, "123456".toCharArray()); final LdapUserDAO x500UserDAO = getUserDAO(); x500UserDAO.addPendingUser(userRequest); // do everything as owner Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { try { final User actual = x500UserDAO.getPendingUser(userID); check(x500Expected, actual); return null; } catch (Exception e) { throw new Exception("Problems", e); } } }); // final X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); // // final User x500Expected = new User(); // x500Expected.getIdentities().add(x500Principal); // x500Expected.personalDetails = pd; // // userRequest = new UserRequest(x500Expected, "123456".toCharArray()); // // final LdapUserDAO x500UserDAO = getUserDAO(); // x500UserDAO.addPendingUser(userRequest); // // // do everything as owner // Subject.doAs(subject, new PrivilegedExceptionAction<Object>() // { // public Object run() // throws Exception // { // try // { // final User actual = x500UserDAO.getPendingUser(userID); // check(x500Expected, actual); // // return null; // } // catch (Exception e) // { // throw new Exception("Problems", e); // } // } // }); } // TODO testAddUser for an existing user Loading @@ -331,7 +331,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of getUser method, of class LdapUserDAO. */ // @Test @Test public void testGetUser() throws Exception { Subject subject = new Subject(); Loading Loading @@ -365,13 +365,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest final String username = userID.getName(); final String password = "123456"; X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); NumericPrincipal numericPrincipal = new NumericPrincipal(UUID.randomUUID()); final User expected = new User(); expected.getIdentities().add(userID); expected.getIdentities().add(x500Principal); expected.getIdentities().add(numericPrincipal); expected.personalDetails = new PersonalDetails("foo", "bar"); expected.personalDetails.email = email; Loading Loading @@ -448,6 +443,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest { final LdapUserDAO userDAO = getUserDAO(); final User user = userDAO.getUserByEmailAddress(emailAddress); assertNotNull(user); PersonalDetails pd = user.personalDetails; assertEquals(emailAddress, pd.email); String actualName = user.getHttpPrincipal().getName(); Loading @@ -466,7 +462,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of getUserByEmailAddress method, of class LdapUserDAO. */ // @Test @Test public void testGetUserByEmailAddress() throws Exception { // create a user with the email attribute Loading @@ -480,29 +476,6 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest { // case 1: only one user matches the email address testGetOneUserByEmailAddress(emailAddress, username); // create another user with the same email attribute final String username1 = createUsername(); final HttpPrincipal userID1 = new HttpPrincipal(username1); final UserRequest userRequest1 = createUserRequest(userID1, emailAddress); addUser(userID1, userRequest1); try { // case 2: two users match the email address testGetOneUserByEmailAddress(emailAddress, username); } catch (PrivilegedActionException pae) { Exception e = pae.getException(); Throwable t = e.getCause(); assertTrue(e.getCause() instanceof UserAlreadyExistsException); assertTrue(e.getCause().getMessage().contains(LdapUserDAO.EMAIL_ADDRESS_CONFLICT_MESSAGE)); } finally { deleteUser(userID1); } } finally { Loading @@ -511,7 +484,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest } // @Test @Test public void testGetPendingUser() throws Exception { final String userRequestDN = "uid=CADCtestRequest,ou=userrequests,ou=ds,dc=testcanfar"; Loading @@ -521,10 +494,9 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest final DNPrincipal dnPrincipal = new DNPrincipal(userRequestDN); final User pendingUser = new User(); pendingUser.personalDetails = new PersonalDetails("CADCtest", "Request"); pendingUser.getIdentities().add(httpPrincipal); pendingUser.getIdentities().add(x500Principal); pendingUser.getIdentities().add(dnPrincipal); final Subject subject = new Subject(); subject.getPrincipals().add(httpPrincipal); Loading Loading @@ -553,19 +525,15 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest // TODO testGetUser for a user that doesn't exist // @Test @Test public void testApproveUser() throws Exception { String username = createUsername(); final HttpPrincipal httpPrincipal = new HttpPrincipal(username); final X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); final NumericPrincipal numericPrincipal = new NumericPrincipal(UUID.randomUUID()); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); expected.getIdentities().add(numericPrincipal); expected.personalDetails = new PersonalDetails("foo", "bar"); expected.personalDetails.email = username + "@canada.ca"; Loading Loading @@ -612,7 +580,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testUpdateUser() throws Exception { // Create a test user Loading @@ -620,12 +588,10 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest final String username = createUsername(); final char[] password = "foo".toCharArray(); HttpPrincipal httpPrincipal = new HttpPrincipal(username); final HttpPrincipal httpPrincipal = new HttpPrincipal(username); testUser = new User(); testUser.getIdentities().add(httpPrincipal); UUID uuid = UUID.randomUUID(); testUser.getIdentities().add(new NumericPrincipal(uuid)); testUser.personalDetails = new PersonalDetails("firstName", "lastName"); final UserRequest userRequest = new UserRequest(testUser, password); Loading @@ -633,15 +599,16 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest Subject subject = new Subject(); subject.getPrincipals().add(httpPrincipal); subject.getPrincipals().add(cadcdaotest2Principal); Subject.doAs(subject, new PrivilegedExceptionAction<Object>() final User newUser = (User) Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() public User run() throws Exception { try { final LdapUserDAO userDAO = getUserDAO(); userDAO.addUser(userRequest); return userDAO.getUser(httpPrincipal); } catch (Exception e) { Loading @@ -652,14 +619,14 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); // update the user testUser.personalDetails.email = "email2"; testUser.personalDetails.address = "address2"; testUser.personalDetails.institute = "institute2"; testUser.personalDetails.city = "city2"; testUser.personalDetails.country = "country2"; newUser.personalDetails.email = "email2"; newUser.personalDetails.address = "address2"; newUser.personalDetails.institute = "institute2"; newUser.personalDetails.city = "city2"; newUser.personalDetails.country = "country2"; // add a DN testUser.getIdentities().add(new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca")); // newUser.getIdentities().add(new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca")); // update the userexpected subject.getPrincipals().add(httpPrincipal); Loading @@ -672,7 +639,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest try { final LdapUserDAO userDAO = getUserDAO(); return userDAO.modifyUser(testUser); return userDAO.modifyUser(newUser); } catch (Exception e) { Loading @@ -691,17 +658,17 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of deleteUser method, of class LdapUserDAO. */ // @Test @Test public void deleteUser() throws Exception { String userID = createUsername(); HttpPrincipal httpPrincipal = new HttpPrincipal(userID); X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); // X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); // expected.getIdentities().add(x500Principal); expected.personalDetails = new PersonalDetails("foo", "bar"); final UserRequest userRequest = new UserRequest(expected, "123456".toCharArray()); Loading Loading @@ -736,17 +703,17 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of deletePendingUser method, of class LdapUserDAO. */ // @Test @Test public void deletePendingUser() throws Exception { String userID = createUsername(); HttpPrincipal httpPrincipal = new HttpPrincipal(userID); X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); // X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); // expected.getIdentities().add(x500Principal); expected.personalDetails = new PersonalDetails("foo", "bar"); expected.personalDetails.email = userID + "@canada.ca"; Loading Loading @@ -831,7 +798,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testGetUsers() throws Exception { // authenticated access Loading Loading @@ -860,7 +827,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testGetPendingUsers() throws Exception { // authenticated access Loading Loading @@ -889,20 +856,16 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testDoLogin() throws Exception { final String username = createUsername(); final String password = "123456"; HttpPrincipal httpPrincipal = new HttpPrincipal(username); X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); NumericPrincipal numericPrincipal = new NumericPrincipal(UUID.randomUUID()); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); expected.getIdentities().add(numericPrincipal); expected.personalDetails = new PersonalDetails("foo", "bar"); Loading Loading
cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +15 −11 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import ca.nrc.cadc.ac.UserAlreadyExistsException; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserRequest; import ca.nrc.cadc.ac.client.GroupMemberships; import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.DNPrincipal; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.auth.NumericPrincipal; Loading Loading @@ -394,10 +395,9 @@ public class LdapUserDAO extends LdapDAO DN userDN = getUserDN(userID.getName(), usersDN); AddRequest addRequest = new AddRequest(userDN, attributes); LDAPConnection foo = getReadWriteConnection(); logger.debug("RW connection: " + foo.getConnectionPoolName()); LDAPResult result = foo.add(addRequest); LDAPResult result = getReadWriteConnection().add(addRequest); LdapDAO.checkLdapResult(result.getResultCode()); logger.info("added " + userID.getName() + " to " + usersDN); } catch (LDAPException e) { Loading Loading @@ -561,6 +561,7 @@ public class LdapUserDAO extends LdapDAO user.personalDetails.institute = searchResult.getAttributeValue(LDAP_INSTITUTE); } logger.info("got " + userID.getName() + " from " + usersDN); return user; } Loading Loading @@ -968,7 +969,9 @@ public class LdapUserDAO extends LdapDAO } try { return getUser(user.getHttpPrincipal()); User ret = getUser(user.getHttpPrincipal()); logger.info("updated " + user.getHttpPrincipal().getName()); return ret; } catch (UserNotFoundException e) { Loading Loading @@ -1180,25 +1183,25 @@ public class LdapUserDAO extends LdapDAO DN getUserDN(User user) throws UserNotFoundException, TransientException { NumericPrincipal numericPrincipal = new NumericPrincipal(user.getID().getUUID()); String searchField = userLdapAttrib.get(numericPrincipal); Principal userID = user.getHttpPrincipal(); String searchField = userLdapAttrib.get(userID.getClass()); if (searchField == null) { throw new IllegalArgumentException( "Unsupported principal type " + numericPrincipal.getClass()); "Unsupported principal type " + userID.getClass()); } // change the DN to be in the 'java' format Filter filter; // if (user.getUserID() instanceof X500Principal) // if (userID instanceof X500Principal) // { // X500Principal orderedPrincipal = AuthenticationUtil.getOrderedForm( // (X500Principal) user.getUserID()); // (X500Principal) userID); // filter = Filter.createEqualityFilter(searchField, orderedPrincipal.toString()); // } // else // { filter = Filter.createEqualityFilter(searchField, numericPrincipal.getName()); filter = Filter.createEqualityFilter(searchField, userID.getName()); // } logger.debug("search filter: " + filter); Loading @@ -1208,6 +1211,7 @@ public class LdapUserDAO extends LdapDAO SearchRequest searchRequest = new SearchRequest( config.getUsersDN(), SearchScope.ONE, filter, LDAP_ENTRYDN); searchResult = getReadOnlyConnection().searchForEntry(searchRequest); logger.info("getUserDN: got " + userID.getName() + " from " + config.getUsersDN()); } catch (LDAPException e) { Loading @@ -1216,7 +1220,7 @@ public class LdapUserDAO extends LdapDAO if (searchResult == null) { String msg = "User not found " + user.getID().getURI(); String msg = "User not found " + userID.getName() + " in " + config.getUsersDN(); logger.debug(msg); throw new UserNotFoundException(msg); } Loading
cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +90 −127 Original line number Diff line number Diff line Loading @@ -125,7 +125,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest public static void setUpBeforeClass() throws Exception { Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG); Log4jInit.setLevel("ca.nrc.cadc.ac", Level.INFO); // get the configuration of the development server from and config files... config = getLdapConfig(); Loading Loading @@ -213,36 +213,36 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); // add user using X500Principal X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); final User x500Expected = new User(); x500Expected.getIdentities().add(x500Principal); x500Expected.personalDetails = new PersonalDetails("foo", "bar"); final UserRequest x500UserRequest = new UserRequest(x500Expected, "123456".toCharArray()); // do everything as owner Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { try { final LdapUserDAO userDAO = getUserDAO(); userDAO.addUser(x500UserRequest); final User actual = userDAO.getUser(userID); check(x500Expected, actual); return null; } catch (Exception e) { throw new Exception("Problems", e); } } }); // X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); // // final User x500Expected = new User(); // x500Expected.getIdentities().add(x500Principal); // // x500Expected.personalDetails = new PersonalDetails("foo", "bar"); // // final UserRequest x500UserRequest = new UserRequest(x500Expected, "123456".toCharArray()); // // // do everything as owner // Subject.doAs(subject, new PrivilegedExceptionAction<Object>() // { // public Object run() throws Exception // { // try // { // final LdapUserDAO userDAO = getUserDAO(); // userDAO.addUser(x500UserRequest); // // final User actual = userDAO.getUser(x500UserRequest.getUser().getHttpPrincipal()); // check(x500Expected, actual); // // return null; // } // catch (Exception e) // { // throw new Exception("Problems", e); // } // } // }); // TODO should test passing in both Http and X500 Principals } Loading @@ -250,7 +250,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of addPendingUser method, of class LdapUserDAO. */ // @Test @Test public void testAddPendingUser() throws Exception { // add user using HttpPrincipal Loading Loading @@ -294,36 +294,36 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); // add user using X500Principal final X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); final User x500Expected = new User(); x500Expected.getIdentities().add(x500Principal); x500Expected.personalDetails = pd; userRequest = new UserRequest(x500Expected, "123456".toCharArray()); final LdapUserDAO x500UserDAO = getUserDAO(); x500UserDAO.addPendingUser(userRequest); // do everything as owner Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { try { final User actual = x500UserDAO.getPendingUser(userID); check(x500Expected, actual); return null; } catch (Exception e) { throw new Exception("Problems", e); } } }); // final X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); // // final User x500Expected = new User(); // x500Expected.getIdentities().add(x500Principal); // x500Expected.personalDetails = pd; // // userRequest = new UserRequest(x500Expected, "123456".toCharArray()); // // final LdapUserDAO x500UserDAO = getUserDAO(); // x500UserDAO.addPendingUser(userRequest); // // // do everything as owner // Subject.doAs(subject, new PrivilegedExceptionAction<Object>() // { // public Object run() // throws Exception // { // try // { // final User actual = x500UserDAO.getPendingUser(userID); // check(x500Expected, actual); // // return null; // } // catch (Exception e) // { // throw new Exception("Problems", e); // } // } // }); } // TODO testAddUser for an existing user Loading @@ -331,7 +331,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of getUser method, of class LdapUserDAO. */ // @Test @Test public void testGetUser() throws Exception { Subject subject = new Subject(); Loading Loading @@ -365,13 +365,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest final String username = userID.getName(); final String password = "123456"; X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); NumericPrincipal numericPrincipal = new NumericPrincipal(UUID.randomUUID()); final User expected = new User(); expected.getIdentities().add(userID); expected.getIdentities().add(x500Principal); expected.getIdentities().add(numericPrincipal); expected.personalDetails = new PersonalDetails("foo", "bar"); expected.personalDetails.email = email; Loading Loading @@ -448,6 +443,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest { final LdapUserDAO userDAO = getUserDAO(); final User user = userDAO.getUserByEmailAddress(emailAddress); assertNotNull(user); PersonalDetails pd = user.personalDetails; assertEquals(emailAddress, pd.email); String actualName = user.getHttpPrincipal().getName(); Loading @@ -466,7 +462,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of getUserByEmailAddress method, of class LdapUserDAO. */ // @Test @Test public void testGetUserByEmailAddress() throws Exception { // create a user with the email attribute Loading @@ -480,29 +476,6 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest { // case 1: only one user matches the email address testGetOneUserByEmailAddress(emailAddress, username); // create another user with the same email attribute final String username1 = createUsername(); final HttpPrincipal userID1 = new HttpPrincipal(username1); final UserRequest userRequest1 = createUserRequest(userID1, emailAddress); addUser(userID1, userRequest1); try { // case 2: two users match the email address testGetOneUserByEmailAddress(emailAddress, username); } catch (PrivilegedActionException pae) { Exception e = pae.getException(); Throwable t = e.getCause(); assertTrue(e.getCause() instanceof UserAlreadyExistsException); assertTrue(e.getCause().getMessage().contains(LdapUserDAO.EMAIL_ADDRESS_CONFLICT_MESSAGE)); } finally { deleteUser(userID1); } } finally { Loading @@ -511,7 +484,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest } // @Test @Test public void testGetPendingUser() throws Exception { final String userRequestDN = "uid=CADCtestRequest,ou=userrequests,ou=ds,dc=testcanfar"; Loading @@ -521,10 +494,9 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest final DNPrincipal dnPrincipal = new DNPrincipal(userRequestDN); final User pendingUser = new User(); pendingUser.personalDetails = new PersonalDetails("CADCtest", "Request"); pendingUser.getIdentities().add(httpPrincipal); pendingUser.getIdentities().add(x500Principal); pendingUser.getIdentities().add(dnPrincipal); final Subject subject = new Subject(); subject.getPrincipals().add(httpPrincipal); Loading Loading @@ -553,19 +525,15 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest // TODO testGetUser for a user that doesn't exist // @Test @Test public void testApproveUser() throws Exception { String username = createUsername(); final HttpPrincipal httpPrincipal = new HttpPrincipal(username); final X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); final NumericPrincipal numericPrincipal = new NumericPrincipal(UUID.randomUUID()); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); expected.getIdentities().add(numericPrincipal); expected.personalDetails = new PersonalDetails("foo", "bar"); expected.personalDetails.email = username + "@canada.ca"; Loading Loading @@ -612,7 +580,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testUpdateUser() throws Exception { // Create a test user Loading @@ -620,12 +588,10 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest final String username = createUsername(); final char[] password = "foo".toCharArray(); HttpPrincipal httpPrincipal = new HttpPrincipal(username); final HttpPrincipal httpPrincipal = new HttpPrincipal(username); testUser = new User(); testUser.getIdentities().add(httpPrincipal); UUID uuid = UUID.randomUUID(); testUser.getIdentities().add(new NumericPrincipal(uuid)); testUser.personalDetails = new PersonalDetails("firstName", "lastName"); final UserRequest userRequest = new UserRequest(testUser, password); Loading @@ -633,15 +599,16 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest Subject subject = new Subject(); subject.getPrincipals().add(httpPrincipal); subject.getPrincipals().add(cadcdaotest2Principal); Subject.doAs(subject, new PrivilegedExceptionAction<Object>() final User newUser = (User) Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() public User run() throws Exception { try { final LdapUserDAO userDAO = getUserDAO(); userDAO.addUser(userRequest); return userDAO.getUser(httpPrincipal); } catch (Exception e) { Loading @@ -652,14 +619,14 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); // update the user testUser.personalDetails.email = "email2"; testUser.personalDetails.address = "address2"; testUser.personalDetails.institute = "institute2"; testUser.personalDetails.city = "city2"; testUser.personalDetails.country = "country2"; newUser.personalDetails.email = "email2"; newUser.personalDetails.address = "address2"; newUser.personalDetails.institute = "institute2"; newUser.personalDetails.city = "city2"; newUser.personalDetails.country = "country2"; // add a DN testUser.getIdentities().add(new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca")); // newUser.getIdentities().add(new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca")); // update the userexpected subject.getPrincipals().add(httpPrincipal); Loading @@ -672,7 +639,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest try { final LdapUserDAO userDAO = getUserDAO(); return userDAO.modifyUser(testUser); return userDAO.modifyUser(newUser); } catch (Exception e) { Loading @@ -691,17 +658,17 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of deleteUser method, of class LdapUserDAO. */ // @Test @Test public void deleteUser() throws Exception { String userID = createUsername(); HttpPrincipal httpPrincipal = new HttpPrincipal(userID); X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); // X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); // expected.getIdentities().add(x500Principal); expected.personalDetails = new PersonalDetails("foo", "bar"); final UserRequest userRequest = new UserRequest(expected, "123456".toCharArray()); Loading Loading @@ -736,17 +703,17 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest /** * Test of deletePendingUser method, of class LdapUserDAO. */ // @Test @Test public void deletePendingUser() throws Exception { String userID = createUsername(); HttpPrincipal httpPrincipal = new HttpPrincipal(userID); X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); // X500Principal x500Principal = new X500Principal("cn=" + userID + ",ou=cadc,o=hia,c=ca"); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); // expected.getIdentities().add(x500Principal); expected.personalDetails = new PersonalDetails("foo", "bar"); expected.personalDetails.email = userID + "@canada.ca"; Loading Loading @@ -831,7 +798,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testGetUsers() throws Exception { // authenticated access Loading Loading @@ -860,7 +827,7 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testGetPendingUsers() throws Exception { // authenticated access Loading Loading @@ -889,20 +856,16 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // @Test @Test public void testDoLogin() throws Exception { final String username = createUsername(); final String password = "123456"; HttpPrincipal httpPrincipal = new HttpPrincipal(username); X500Principal x500Principal = new X500Principal("cn=" + username + ",ou=cadc,o=hia,c=ca"); NumericPrincipal numericPrincipal = new NumericPrincipal(UUID.randomUUID()); final User expected = new User(); expected.getIdentities().add(httpPrincipal); expected.getIdentities().add(x500Principal); expected.getIdentities().add(numericPrincipal); expected.personalDetails = new PersonalDetails("foo", "bar"); Loading