Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +29 −8 Original line number Diff line number Diff line Loading @@ -292,7 +292,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { getUser(userRequest.getUser().getUserID(), config.getUsersDN()); final String error = userRequest.getUser().getUserID().getName() + " fount in " + config.getUsersDN(); " found in " + config.getUsersDN(); throw new UserAlreadyExistsException(error); } catch (UserNotFoundException e1) {} Loading @@ -313,18 +313,18 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { try { getUser(userRequest.getUser().getUserID(), config.getUsersDN()); getUser(userRequest.getUser().getUserID(), config.getUsersDN(), false); final String error = userRequest.getUser().getUserID().getName() + " fount in " + config.getUsersDN(); " found in " + config.getUsersDN(); throw new UserAlreadyExistsException(error); } catch (UserNotFoundException e1) { try { getUser(userRequest.getUser().getUserID(), config.getUserRequestsDN()); getUser(userRequest.getUser().getUserID(), config.getUserRequestsDN(), false); final String error = userRequest.getUser().getUserID().getName() + " fount in " + config.getUserRequestsDN(); " found in " + config.getUserRequestsDN(); throw new UserAlreadyExistsException(error); } catch (UserNotFoundException e2) {} Loading Loading @@ -441,6 +441,24 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO throws UserNotFoundException, TransientException, AccessControlException { return getUser(userID, usersDN, true); } /** * Get the user specified by userID. * * @param userID The userID. * @param usersDN The LDAP tree to search. * @param proxy Whether to proxy the search as the calling Subject. * @return User instance. * @throws UserNotFoundException when the user is not found. * @throws TransientException If an temporary, unexpected problem occurred. * @throws AccessControlException If the operation is not permitted. */ private User<T> getUser(final T userID, final String usersDN, final boolean proxy) throws UserNotFoundException, TransientException, AccessControlException { String searchField = userLdapAttrib.get(userID.getClass()); if (searchField == null) { Loading @@ -457,9 +475,12 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO SearchRequest searchRequest = new SearchRequest(usersDN, SearchScope.SUB, filter, userAttribs); if (proxy) { String proxyDN = "dn:" + getSubjectDN().toNormalizedString(); logger.debug("Proxying auth as: " + proxyDN); searchRequest.addControl(new ProxiedAuthorizationV2RequestControl(proxyDN)); } searchResult = getConnection().searchForEntry(searchRequest); } Loading projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // TODO testAddUser for an existing user /** * Test of getUser method, of class LdapUserDAO. */ Loading Loading @@ -337,6 +339,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // TODO testGetUser for a user that doesn't exist @Test public void testApproveUser() throws Exception { Loading Loading @@ -485,6 +489,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest check(testUser2, updatedUser); } // TODO testUpdateUser for a user that doesn't exist /** * Test of deleteUser method, of class LdapUserDAO. */ Loading Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +29 −8 Original line number Diff line number Diff line Loading @@ -292,7 +292,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { getUser(userRequest.getUser().getUserID(), config.getUsersDN()); final String error = userRequest.getUser().getUserID().getName() + " fount in " + config.getUsersDN(); " found in " + config.getUsersDN(); throw new UserAlreadyExistsException(error); } catch (UserNotFoundException e1) {} Loading @@ -313,18 +313,18 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { try { getUser(userRequest.getUser().getUserID(), config.getUsersDN()); getUser(userRequest.getUser().getUserID(), config.getUsersDN(), false); final String error = userRequest.getUser().getUserID().getName() + " fount in " + config.getUsersDN(); " found in " + config.getUsersDN(); throw new UserAlreadyExistsException(error); } catch (UserNotFoundException e1) { try { getUser(userRequest.getUser().getUserID(), config.getUserRequestsDN()); getUser(userRequest.getUser().getUserID(), config.getUserRequestsDN(), false); final String error = userRequest.getUser().getUserID().getName() + " fount in " + config.getUserRequestsDN(); " found in " + config.getUserRequestsDN(); throw new UserAlreadyExistsException(error); } catch (UserNotFoundException e2) {} Loading Loading @@ -441,6 +441,24 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO throws UserNotFoundException, TransientException, AccessControlException { return getUser(userID, usersDN, true); } /** * Get the user specified by userID. * * @param userID The userID. * @param usersDN The LDAP tree to search. * @param proxy Whether to proxy the search as the calling Subject. * @return User instance. * @throws UserNotFoundException when the user is not found. * @throws TransientException If an temporary, unexpected problem occurred. * @throws AccessControlException If the operation is not permitted. */ private User<T> getUser(final T userID, final String usersDN, final boolean proxy) throws UserNotFoundException, TransientException, AccessControlException { String searchField = userLdapAttrib.get(userID.getClass()); if (searchField == null) { Loading @@ -457,9 +475,12 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO SearchRequest searchRequest = new SearchRequest(usersDN, SearchScope.SUB, filter, userAttribs); if (proxy) { String proxyDN = "dn:" + getSubjectDN().toNormalizedString(); logger.debug("Proxying auth as: " + proxyDN); searchRequest.addControl(new ProxiedAuthorizationV2RequestControl(proxyDN)); } searchResult = getConnection().searchForEntry(searchRequest); } Loading
projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // TODO testAddUser for an existing user /** * Test of getUser method, of class LdapUserDAO. */ Loading Loading @@ -337,6 +339,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest }); } // TODO testGetUser for a user that doesn't exist @Test public void testApproveUser() throws Exception { Loading Loading @@ -485,6 +489,8 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest check(testUser2, updatedUser); } // TODO testUpdateUser for a user that doesn't exist /** * Test of deleteUser method, of class LdapUserDAO. */ Loading