Loading projects/cadcAccessControl-Server/build.xml +12 −9 Original line number Diff line number Diff line Loading @@ -113,16 +113,19 @@ </target> <!-- JAR files needed to run the test suite --> <property name="json" value="${ext.lib}/json.jar"/> <property name="easyMock" value="${ext.dev}/easymock.jar"/> <property name="junit" value="${ext.dev}/junit.jar"/> <property name="xmlunit" value="${ext.dev}/xmlunit.jar"/> <property name="cglib" value="${ext.dev}/cglib.jar"/> <property name="objenesis" value="${ext.dev}/objenesis.jar"/> <property name="asm" value="${ext.dev}/asm.jar"/> <property name="dev.junit" value="${ext.dev}/junit.jar"/> <property name="dev.httpunit" value="${ext.dev}/httpunit.jar"/> <property name="dev.easyMock" value="${ext.dev}/easymock.jar"/> <property name="dev.objenesis" value="${ext.dev}/objenesis.jar"/> <property name="dev.selenium.server" value="${ext.dev}/selenium-server-standalone.jar" /> <property name="lib.js" value="${ext.lib}/js.jar"/> <property name="lib.nekoHTML" value="${ext.lib}/nekohtml.jar"/> <property name="lib.xerces" value="${ext.lib}/xerces.jar"/> <property name="lib.commons-logging" value="${ext.lib}/commons-logging.jar"/> <property name="testingJars" value="${jars}:${json}:${easyMock}:${junit}:${xmlunit}:${cglib}:${asm}:${objenesis}"/> value="${lib.commons-logging}:${dev.junit}:${dev.httpunit}:${dev.easyMock}:${dev.selenium.server}:${dev.objenesis}:${lib.js}:${lib.nekoHTML}:${lib.xerces}"/> <target name="setup-test"> <echo>******************</echo> Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +21 −5 Original line number Diff line number Diff line Loading @@ -307,6 +307,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO return getUser(userID, config.getUsersDN()); } /** * Get the user specified by userID. * Loading Loading @@ -338,9 +340,12 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO new SearchRequest(usersDN, SearchScope.SUB, searchField, userAttribs); if (isSecure(usersDN)) { searchRequest.addControl( new ProxiedAuthorizationV2RequestControl( "dn:" + getSubjectDN().toNormalizedString())); } searchResult = getConnection().searchForEntry(searchRequest); } Loading Loading @@ -382,6 +387,17 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO return user; } /** * Obtain whether the given DN tree requires authentication. * * @param usersDN The usersDN to check. * @return True if requires authentication, False otherwise. */ private boolean isSecure(final String usersDN) { return !usersDN.equals(config.getUserRequestsDN()); } /** * Get all group names. * Loading projects/cadcAccessControl-Server/test/LdapConfig.test.properties +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ server = proc5-03.cadc.dao.nrc.ca port = 636 proxyUser = webproxy usersDn = ou=Users,ou=ds,dc=canfar,dc=net userRequestsDN = ou=UserRequests,ou=ds,dc=canfar,dc=net userRequestsDN = ou=UserRequests,ou=ds,dc=testcanfar newUsersDn = ou=NewUsers,ou=ds,dc=canfar,dc=net groupsDn = ou=Groups,ou=ds,dc=canfar,dc=net adminGroupsDn = ou=adminGroups,ou=ds,dc=canfar,dc=net No newline at end of file projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +4 −19 Original line number Diff line number Diff line Loading @@ -134,29 +134,14 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest expected.getIdentities().add(new HttpPrincipal(getUserID())); expected.details.add(new PersonalDetails("foo", "bar")); final UserRequest userRequest = new UserRequest(expected, "123456"); final UserRequest<HttpPrincipal> userRequest = new UserRequest<HttpPrincipal>(expected, "123456"); Subject subject = new Subject(); subject.getPrincipals().add(testUser.getUserID()); // do everything as owner Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { try { User<? extends Principal> actual = getUserDAO().addUser(userRequest); User<HttpPrincipal> actual = getUserDAO().addUser(userRequest); check(expected, actual); return null; } catch (Exception e) { throw new Exception("Problems", e); } } }); } /** Loading projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/AddGroupMemberActionTest.java +17 −14 Original line number Diff line number Diff line Loading @@ -75,7 +75,8 @@ import ca.nrc.cadc.util.Log4jInit; import java.security.Principal; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.easymock.EasyMock; import static org.easymock.EasyMock.*; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; Loading Loading @@ -103,12 +104,12 @@ public class AddGroupMemberActionTest Group member = new Group("member", null); group.getGroupMembers().add(member); final GroupPersistence groupPersistence = EasyMock.createMock(GroupPersistence.class); EasyMock.expect(groupPersistence.getGroup("group")).andReturn(group); EasyMock.expect(groupPersistence.getGroup("member")).andReturn(member); EasyMock.replay(groupPersistence); final GroupPersistence groupPersistence = createMock(GroupPersistence.class); expect(groupPersistence.getGroup("group")).andReturn(group); expect(groupPersistence.getGroup("member")).andReturn(member); replay(groupPersistence); GroupLogInfo logInfo = EasyMock.createMock(GroupLogInfo.class); GroupLogInfo logInfo = createMock(GroupLogInfo.class); AddGroupMemberAction action = new AddGroupMemberAction(logInfo, "group", "member") { Loading Loading @@ -143,14 +144,16 @@ public class AddGroupMemberActionTest Group modified = new Group("group", null); modified.getGroupMembers().add(member); final GroupPersistence groupPersistence = createMock(GroupPersistence.class); expect(groupPersistence.getGroup("group")).andReturn(group); expect(groupPersistence.getGroup("member")).andReturn(member); expect(groupPersistence.modifyGroup(group)).andReturn(modified); final GroupPersistence groupPersistence = EasyMock.createMock(GroupPersistence.class); EasyMock.expect(groupPersistence.getGroup("group")).andReturn(group); EasyMock.expect(groupPersistence.getGroup("member")).andReturn(member); EasyMock.expect(groupPersistence.modifyGroup(group)).andReturn(modified); EasyMock.replay(groupPersistence); replay(groupPersistence); GroupLogInfo logInfo = EasyMock.createMock(GroupLogInfo.class); GroupLogInfo logInfo = createMock(GroupLogInfo.class); AddGroupMemberAction action = new AddGroupMemberAction(logInfo, "group", "member") { Loading Loading
projects/cadcAccessControl-Server/build.xml +12 −9 Original line number Diff line number Diff line Loading @@ -113,16 +113,19 @@ </target> <!-- JAR files needed to run the test suite --> <property name="json" value="${ext.lib}/json.jar"/> <property name="easyMock" value="${ext.dev}/easymock.jar"/> <property name="junit" value="${ext.dev}/junit.jar"/> <property name="xmlunit" value="${ext.dev}/xmlunit.jar"/> <property name="cglib" value="${ext.dev}/cglib.jar"/> <property name="objenesis" value="${ext.dev}/objenesis.jar"/> <property name="asm" value="${ext.dev}/asm.jar"/> <property name="dev.junit" value="${ext.dev}/junit.jar"/> <property name="dev.httpunit" value="${ext.dev}/httpunit.jar"/> <property name="dev.easyMock" value="${ext.dev}/easymock.jar"/> <property name="dev.objenesis" value="${ext.dev}/objenesis.jar"/> <property name="dev.selenium.server" value="${ext.dev}/selenium-server-standalone.jar" /> <property name="lib.js" value="${ext.lib}/js.jar"/> <property name="lib.nekoHTML" value="${ext.lib}/nekohtml.jar"/> <property name="lib.xerces" value="${ext.lib}/xerces.jar"/> <property name="lib.commons-logging" value="${ext.lib}/commons-logging.jar"/> <property name="testingJars" value="${jars}:${json}:${easyMock}:${junit}:${xmlunit}:${cglib}:${asm}:${objenesis}"/> value="${lib.commons-logging}:${dev.junit}:${dev.httpunit}:${dev.easyMock}:${dev.selenium.server}:${dev.objenesis}:${lib.js}:${lib.nekoHTML}:${lib.xerces}"/> <target name="setup-test"> <echo>******************</echo> Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +21 −5 Original line number Diff line number Diff line Loading @@ -307,6 +307,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO return getUser(userID, config.getUsersDN()); } /** * Get the user specified by userID. * Loading Loading @@ -338,9 +340,12 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO new SearchRequest(usersDN, SearchScope.SUB, searchField, userAttribs); if (isSecure(usersDN)) { searchRequest.addControl( new ProxiedAuthorizationV2RequestControl( "dn:" + getSubjectDN().toNormalizedString())); } searchResult = getConnection().searchForEntry(searchRequest); } Loading Loading @@ -382,6 +387,17 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO return user; } /** * Obtain whether the given DN tree requires authentication. * * @param usersDN The usersDN to check. * @return True if requires authentication, False otherwise. */ private boolean isSecure(final String usersDN) { return !usersDN.equals(config.getUserRequestsDN()); } /** * Get all group names. * Loading
projects/cadcAccessControl-Server/test/LdapConfig.test.properties +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ server = proc5-03.cadc.dao.nrc.ca port = 636 proxyUser = webproxy usersDn = ou=Users,ou=ds,dc=canfar,dc=net userRequestsDN = ou=UserRequests,ou=ds,dc=canfar,dc=net userRequestsDN = ou=UserRequests,ou=ds,dc=testcanfar newUsersDn = ou=NewUsers,ou=ds,dc=canfar,dc=net groupsDn = ou=Groups,ou=ds,dc=canfar,dc=net adminGroupsDn = ou=adminGroups,ou=ds,dc=canfar,dc=net No newline at end of file
projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAOTest.java +4 −19 Original line number Diff line number Diff line Loading @@ -134,29 +134,14 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest expected.getIdentities().add(new HttpPrincipal(getUserID())); expected.details.add(new PersonalDetails("foo", "bar")); final UserRequest userRequest = new UserRequest(expected, "123456"); final UserRequest<HttpPrincipal> userRequest = new UserRequest<HttpPrincipal>(expected, "123456"); Subject subject = new Subject(); subject.getPrincipals().add(testUser.getUserID()); // do everything as owner Subject.doAs(subject, new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { try { User<? extends Principal> actual = getUserDAO().addUser(userRequest); User<HttpPrincipal> actual = getUserDAO().addUser(userRequest); check(expected, actual); return null; } catch (Exception e) { throw new Exception("Problems", e); } } }); } /** Loading
projects/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/AddGroupMemberActionTest.java +17 −14 Original line number Diff line number Diff line Loading @@ -75,7 +75,8 @@ import ca.nrc.cadc.util.Log4jInit; import java.security.Principal; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.easymock.EasyMock; import static org.easymock.EasyMock.*; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; Loading Loading @@ -103,12 +104,12 @@ public class AddGroupMemberActionTest Group member = new Group("member", null); group.getGroupMembers().add(member); final GroupPersistence groupPersistence = EasyMock.createMock(GroupPersistence.class); EasyMock.expect(groupPersistence.getGroup("group")).andReturn(group); EasyMock.expect(groupPersistence.getGroup("member")).andReturn(member); EasyMock.replay(groupPersistence); final GroupPersistence groupPersistence = createMock(GroupPersistence.class); expect(groupPersistence.getGroup("group")).andReturn(group); expect(groupPersistence.getGroup("member")).andReturn(member); replay(groupPersistence); GroupLogInfo logInfo = EasyMock.createMock(GroupLogInfo.class); GroupLogInfo logInfo = createMock(GroupLogInfo.class); AddGroupMemberAction action = new AddGroupMemberAction(logInfo, "group", "member") { Loading Loading @@ -143,14 +144,16 @@ public class AddGroupMemberActionTest Group modified = new Group("group", null); modified.getGroupMembers().add(member); final GroupPersistence groupPersistence = createMock(GroupPersistence.class); expect(groupPersistence.getGroup("group")).andReturn(group); expect(groupPersistence.getGroup("member")).andReturn(member); expect(groupPersistence.modifyGroup(group)).andReturn(modified); final GroupPersistence groupPersistence = EasyMock.createMock(GroupPersistence.class); EasyMock.expect(groupPersistence.getGroup("group")).andReturn(group); EasyMock.expect(groupPersistence.getGroup("member")).andReturn(member); EasyMock.expect(groupPersistence.modifyGroup(group)).andReturn(modified); EasyMock.replay(groupPersistence); replay(groupPersistence); GroupLogInfo logInfo = EasyMock.createMock(GroupLogInfo.class); GroupLogInfo logInfo = createMock(GroupLogInfo.class); AddGroupMemberAction action = new AddGroupMemberAction(logInfo, "group", "member") { Loading