Commit be9549ac authored by Jeff Burke's avatar Jeff Burke
Browse files

s1651: added support to model and ldap config for adminGroups

parent 3310dfa1
Loading
Loading
Loading
Loading
+28 −12
Original line number Diff line number Diff line
@@ -86,9 +86,11 @@ public class LdapConfig
    public static final String LDAP_PASSWD = "passwd";
    public static final String LDAP_USERS_DN = "usersDn";
    public static final String LDAP_GROUPS_DN = "groupsDn";
    public static final String LDAP_ADMIN_GROUPS_DN  = "adminGroupsDn";

    private String usersDN;
    private String groupsDN;
    private String adminGroupsDN;
    private String server;
    private int port;
    private String adminUserDN;
@@ -157,17 +159,25 @@ public class LdapConfig
                                       LDAP_GROUPS_DN);
        }
        
        String ldapAdminGroupsDn = config.getProperty(LDAP_ADMIN_GROUPS_DN);
        if (!StringUtil.hasText(ldapAdminGroupsDn))
        {
            throw new RuntimeException("failed to read property " + 
                                       LDAP_ADMIN_GROUPS_DN);
        }

        return new LdapConfig(server, Integer.valueOf(port), ldapAdmin, 
                              ldapPasswd, ldapUsersDn, ldapGroupsDn);
                              ldapPasswd, ldapUsersDn, ldapGroupsDn,
                              ldapAdminGroupsDn);
    }

    public LdapConfig(String server, int port, String adminUserDN, 
                      String adminPasswd, String usersDN, String groupsDN)
                      String adminPasswd, String usersDN, String groupsDN,
                      String adminGroupsDN)
    {
        if (!StringUtil.hasText(server))
        {
            throw new IllegalArgumentException("Illegal LDAP server name: " + 
                                               server);
            throw new IllegalArgumentException("Illegal LDAP server name");
        }
        if (port < 0)
        {
@@ -176,23 +186,23 @@ public class LdapConfig
        }
        if (!StringUtil.hasText(adminUserDN))
        {
            throw new IllegalArgumentException("Illegal Admin DN: " + 
                                               adminUserDN);
            throw new IllegalArgumentException("Illegal Admin DN");
        }
        if (!StringUtil.hasText(adminPasswd))
        {
            throw new IllegalArgumentException("Illegal Admin password: " + 
                                               adminPasswd);
            throw new IllegalArgumentException("Illegal Admin password");
        }
        if (!StringUtil.hasText(usersDN))
        {
            throw new IllegalArgumentException("Illegal users LDAP DN: " + 
                                               usersDN);
            throw new IllegalArgumentException("Illegal users LDAP DN");
        }
        if (!StringUtil.hasText(groupsDN))
        {
            throw new IllegalArgumentException("Illegal groups LDAP DN: " + 
                                               groupsDN);
            throw new IllegalArgumentException("Illegal groups LDAP DN");
        }
        if (!StringUtil.hasText(adminGroupsDN))
        {
            throw new IllegalArgumentException("Illegal admin groups LDAP DN");
        }

        this.server = server;
@@ -201,6 +211,7 @@ public class LdapConfig
        this.adminPasswd = adminPasswd;
        this.usersDN = usersDN;
        this.groupsDN = groupsDN;
        this.adminGroupsDN = adminGroupsDN;
    }

    public String getUsersDN()
@@ -213,6 +224,11 @@ public class LdapConfig
        return this.groupsDN;
    }
    
    public String getAdminGroupsDN()
    {
        return this.adminGroupsDN;
    }

    public String getServer()
    {
        return this.server;
+297 −297

File changed.

Preview size limit exceeded, changes collapsed.

+4 −3
Original line number Diff line number Diff line
@@ -89,10 +89,11 @@ public class LdapDAOTest
    static int port = 389;
    static String adminDN = "uid=webproxy,ou=WebProxy,ou=topologymanagement,o=netscaperoot";
    static String adminPW = "go4it";
    static String userBaseDN = "ou=Users,ou=ds,dc=canfartest,dc=net";
    static String groupBaseDN = "ou=Groups,ou=ds,dc=canfartest,dc=net";
    static String usersDN = "ou=Users,ou=ds,dc=canfartest,dc=net";
    static String groupsDN = "ou=Groups,ou=ds,dc=canfartest,dc=net";
    static String adminGroupsDN = "ou=adminGroups,ou=ds,dc=canfartest,dc=net";
    
    LdapConfig config = new LdapConfig(server, port, adminDN, adminPW, userBaseDN, groupBaseDN);
    LdapConfig config = new LdapConfig(server, port, adminDN, adminPW, usersDN, groupsDN, adminGroupsDN);
    
    @Test
    public void testLdapBindConnection() throws Exception
+8 −30
Original line number Diff line number Diff line
@@ -69,10 +69,11 @@ public class LdapGroupDAOTest
    static int port = 389;
    static String adminDN = "uid=webproxy,ou=webproxy,ou=topologymanagement,o=netscaperoot";
    static String adminPW = "go4it";
    static String userBaseDN = "ou=Users,ou=ds,dc=canfartest,dc=net";
    static String groupBaseDN = "ou=Groups,ou=ds,dc=canfartest,dc=net";
    //static String userBaseDN = "ou=Users,ou=ds,dc=canfar,dc=net";
    //static String groupBaseDN = "ou=Groups,ou=ds,dc=canfar,dc=net";
    static String usersDN = "ou=Users,ou=ds,dc=canfartest,dc=net";
    static String groupsDN = "ou=Groups,ou=ds,dc=canfartest,dc=net";
    static String adminGroupsDN = "ou=adminGroups,ou=ds,dc=canfartest,dc=net";
    //static String usersDN = "ou=Users,ou=ds,dc=canfar,dc=net";
    //static String groupsDN = "ou=Groups,ou=ds,dc=canfar,dc=net";
    
    static String daoTestDN1 = "cn=cadcdaotest1,ou=cadc,o=hia,c=ca";
    static String daoTestDN2 = "cn=cadcdaotest2,ou=cadc,o=hia,c=ca";
@@ -115,7 +116,7 @@ public class LdapGroupDAOTest
        anonSubject = new Subject();
        anonSubject.getPrincipals().add(unknownUser.getUserID());
    
        config = new LdapConfig(server, port, adminDN, adminPW, userBaseDN, groupBaseDN);
        config = new LdapConfig(server, port, adminDN, adminPW, usersDN, groupsDN, adminGroupsDN);
    }

    LdapGroupDAO<X500Principal> getGroupDAO()
@@ -158,24 +159,6 @@ public class LdapGroupDAOTest
                    actualGroup = getGroupDAO().modifyGroup(expectGroup);
                    assertGroupsEqual(expectGroup, actualGroup);

                    // groupRead
                    expectGroup.groupRead = otherGroup;
                    actualGroup = getGroupDAO().modifyGroup(expectGroup);
                    assertGroupsEqual(expectGroup, actualGroup);
                    
                    expectGroup.groupRead = null;
                    actualGroup = getGroupDAO().modifyGroup(expectGroup);
                    assertGroupsEqual(expectGroup, actualGroup);

                    // groupWrite
                    expectGroup.groupWrite = otherGroup;
                    actualGroup = getGroupDAO().modifyGroup(expectGroup);
                    assertGroupsEqual(expectGroup, actualGroup);
                    
                    expectGroup.groupWrite = null;
                    actualGroup = getGroupDAO().modifyGroup(expectGroup);
                    assertGroupsEqual(expectGroup, actualGroup);

                    // userMembers
                    expectGroup.getUserMembers().add(daoTestUser2);
                    actualGroup = getGroupDAO().modifyGroup(expectGroup);
@@ -196,8 +179,6 @@ public class LdapGroupDAOTest
                    
                    // delete the group
                    expectGroup.description = "Happy testing";
                    expectGroup.groupRead = otherGroup;
                    expectGroup.groupWrite = otherGroup;
                    expectGroup.getUserMembers().add(daoTestUser2);
                    expectGroup.getGroupMembers().add(otherGroup);
                    
@@ -398,9 +379,9 @@ public class LdapGroupDAOTest
                {                    
                    getGroupDAO().addGroup(new Group("foo", unknownUser));
                    fail("addGroup with unknown user should throw " + 
                         "UserNotFoundException");
                         "AccessControlException");
                }
                catch (UserNotFoundException ignore) {}
                catch (AccessControlException ignore) {}
                
                Group group = getGroupDAO().addGroup(new Group(getGroupID(), 
                                                     daoTestUser1));
@@ -651,9 +632,6 @@ public class LdapGroupDAOTest
        {
            assertTrue(gr2.getUserMembers().contains(user));
        }
        assertEquals(gr1.groupRead, gr2.groupRead);
        assertEquals(gr1.groupWrite, gr2.groupWrite);
        assertEquals(gr1.groupWrite, gr2.groupWrite);
        assertEquals(gr1.getProperties(), gr2.getProperties());
        for (GroupProperty prop : gr1.getProperties())
        {
+4 −3
Original line number Diff line number Diff line
@@ -96,8 +96,9 @@ public class LdapUserDAOTest
    static int port = 389;
    static String adminDN = "uid=webproxy,ou=Webproxy,ou=topologymanagement,o=netscaperoot";
    static String adminPW = "go4it";
    static String userBaseDN = "ou=Users,ou=ds,dc=canfartest,dc=net";
    static String groupBaseDN = "ou=Groups,ou=ds,dc=canfartest,dc=net";
    static String usersDN = "ou=Users,ou=ds,dc=canfartest,dc=net";
    static String groupsDN = "ou=Groups,ou=ds,dc=canfartest,dc=net";
    static String adminGroupsDN = "ou=adminGroups,ou=ds,dc=canfartest,dc=net";
//    static String userBaseDN = "ou=Users,ou=ds,dc=canfar,dc=net";
//    static String groupBaseDN = "ou=Groups,ou=ds,dc=canfar,dc=net";
    
@@ -114,7 +115,7 @@ public class LdapUserDAOTest
        
        testUser = new User<X500Principal>(new X500Principal(testUserDN));
    
        config = new LdapConfig(server, port, adminDN, adminPW, userBaseDN, groupBaseDN);
        config = new LdapConfig(server, port, adminDN, adminPW, usersDN, groupsDN, adminGroupsDN);
    }

    LdapUserDAO<X500Principal> getUserDAO()
Loading