Loading projects/cadcAccessControl-Server/build.xml +1 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ <pathelement path="${jars}:${testingJars}"/> </classpath> <sysproperty key="ca.nrc.cadc.util.PropertiesReader.dir" value="test"/> <test name="ca.nrc.cadc.ac.server.web.users.ModifyUserActionTest" /> <test name="ca.nrc.cadc.ac.server.ldap.LdapUserDAOTest" /> <formatter type="plain" usefile="false" /> </junit> </target> Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +10 −3 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import java.util.Set; import javax.security.auth.x500.X500Principal; import ca.nrc.cadc.auth.DNPrincipal; import com.unboundid.ldap.sdk.DeleteRequest; import com.unboundid.ldap.sdk.ModifyDNRequest; import org.apache.log4j.Logger; Loading @@ -96,6 +97,8 @@ import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.auth.NumericPrincipal; import ca.nrc.cadc.net.TransientException; import ca.nrc.cadc.profiler.Profiler; import com.unboundid.ldap.sdk.AddRequest; import com.unboundid.ldap.sdk.Attribute; import com.unboundid.ldap.sdk.BindRequest; Loading Loading @@ -130,6 +133,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { private static final Logger logger = Logger.getLogger(LdapUserDAO.class); private Profiler profiler = new Profiler(LdapUserDAO.class); // Map of identity type to LDAP attribute private final Map<Class<?>, String> userLdapAttrib = new HashMap<Class<?>, String>(); Loading Loading @@ -286,7 +291,6 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO * Add the specified user to the active user tree. * * @param userRequest The user to add. * @return User instance. * @throws TransientException If an temporary, unexpected problem occurred. * @throws UserAlreadyExistsException If the user already exists. */ Loading @@ -309,7 +313,6 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO *Add the specified user to the pending user tree. * * @param userRequest The user to add. * @return User instance. * @throws TransientException If an temporary, unexpected problem occurred. * @throws UserAlreadyExistsException If the user already exists. */ Loading Loading @@ -548,12 +551,15 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO try { Filter filter = Filter.createEqualityFilter(searchField, userID.getName()); profiler.checkpoint("getAugmentedUser.createFilter"); logger.debug("search filter: " + filter); SearchRequest searchRequest = new SearchRequest( config.getUsersDN(), SearchScope.ONE, filter, identityAttribs); profiler.checkpoint("getAugmentedUser.createSearchRequest"); SearchResultEntry searchResult = getConnection().searchForEntry(searchRequest); profiler.checkpoint("getAugmentedUser.searchForEntry"); if (searchResult == null) { Loading @@ -571,6 +577,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO searchResult.getAttributeValue(LDAP_DISTINGUISHED_NAME))); user.getIdentities().add(new DNPrincipal( searchResult.getAttributeValue(LDAP_ENTRYDN))); profiler.checkpoint("getAugmentedUser.mapIdentities"); return user; } catch (LDAPException e) Loading Loading @@ -687,7 +694,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO try { ModifyDNRequest modifyDNRequest = new ModifyDNRequest(dn, uid, false, config.getUsersDN()); new ModifyDNRequest(dn, uid, true, config.getUsersDN()); LdapDAO.checkLdapResult(getConnection().modifyDN(modifyDNRequest).getResultCode()); } Loading projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import java.util.Random; import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.auth.DNPrincipal; import org.apache.log4j.Level; import org.apache.log4j.Logger; Loading Loading @@ -378,6 +379,18 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest assertNotNull(actual); assertEquals(expected.getUserID(), actual.getUserID()); User<Principal> newUser = userDAO.getUser(userRequest.getUser().getUserID()); assertNotNull(newUser); assertEquals(expected.getUserID(), newUser.getUserID()); try { userDAO.getPendingUser(userRequest.getUser().getUserID()); fail("approved user " + userRequest.getUser().getUserID() + " found in pending user tree"); } catch (UserNotFoundException ignore) {} return null; } catch (Exception e) Loading Loading
projects/cadcAccessControl-Server/build.xml +1 −1 Original line number Diff line number Diff line Loading @@ -147,7 +147,7 @@ <pathelement path="${jars}:${testingJars}"/> </classpath> <sysproperty key="ca.nrc.cadc.util.PropertiesReader.dir" value="test"/> <test name="ca.nrc.cadc.ac.server.web.users.ModifyUserActionTest" /> <test name="ca.nrc.cadc.ac.server.ldap.LdapUserDAOTest" /> <formatter type="plain" usefile="false" /> </junit> </target> Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +10 −3 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import java.util.Set; import javax.security.auth.x500.X500Principal; import ca.nrc.cadc.auth.DNPrincipal; import com.unboundid.ldap.sdk.DeleteRequest; import com.unboundid.ldap.sdk.ModifyDNRequest; import org.apache.log4j.Logger; Loading @@ -96,6 +97,8 @@ import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.auth.NumericPrincipal; import ca.nrc.cadc.net.TransientException; import ca.nrc.cadc.profiler.Profiler; import com.unboundid.ldap.sdk.AddRequest; import com.unboundid.ldap.sdk.Attribute; import com.unboundid.ldap.sdk.BindRequest; Loading Loading @@ -130,6 +133,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO { private static final Logger logger = Logger.getLogger(LdapUserDAO.class); private Profiler profiler = new Profiler(LdapUserDAO.class); // Map of identity type to LDAP attribute private final Map<Class<?>, String> userLdapAttrib = new HashMap<Class<?>, String>(); Loading Loading @@ -286,7 +291,6 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO * Add the specified user to the active user tree. * * @param userRequest The user to add. * @return User instance. * @throws TransientException If an temporary, unexpected problem occurred. * @throws UserAlreadyExistsException If the user already exists. */ Loading @@ -309,7 +313,6 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO *Add the specified user to the pending user tree. * * @param userRequest The user to add. * @return User instance. * @throws TransientException If an temporary, unexpected problem occurred. * @throws UserAlreadyExistsException If the user already exists. */ Loading Loading @@ -548,12 +551,15 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO try { Filter filter = Filter.createEqualityFilter(searchField, userID.getName()); profiler.checkpoint("getAugmentedUser.createFilter"); logger.debug("search filter: " + filter); SearchRequest searchRequest = new SearchRequest( config.getUsersDN(), SearchScope.ONE, filter, identityAttribs); profiler.checkpoint("getAugmentedUser.createSearchRequest"); SearchResultEntry searchResult = getConnection().searchForEntry(searchRequest); profiler.checkpoint("getAugmentedUser.searchForEntry"); if (searchResult == null) { Loading @@ -571,6 +577,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO searchResult.getAttributeValue(LDAP_DISTINGUISHED_NAME))); user.getIdentities().add(new DNPrincipal( searchResult.getAttributeValue(LDAP_ENTRYDN))); profiler.checkpoint("getAugmentedUser.mapIdentities"); return user; } catch (LDAPException e) Loading Loading @@ -687,7 +694,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO try { ModifyDNRequest modifyDNRequest = new ModifyDNRequest(dn, uid, false, config.getUsersDN()); new ModifyDNRequest(dn, uid, true, config.getUsersDN()); LdapDAO.checkLdapResult(getConnection().modifyDN(modifyDNRequest).getResultCode()); } Loading
projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import java.util.Random; import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.auth.DNPrincipal; import org.apache.log4j.Level; import org.apache.log4j.Logger; Loading Loading @@ -378,6 +379,18 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest assertNotNull(actual); assertEquals(expected.getUserID(), actual.getUserID()); User<Principal> newUser = userDAO.getUser(userRequest.getUser().getUserID()); assertNotNull(newUser); assertEquals(expected.getUserID(), newUser.getUserID()); try { userDAO.getPendingUser(userRequest.getUser().getUserID()); fail("approved user " + userRequest.getUser().getUserID() + " found in pending user tree"); } catch (UserNotFoundException ignore) {} return null; } catch (Exception e) Loading