diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapConfig.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapConfig.java index 817b3e84c836d81ffe8f4ff6ed7fbcd4aa54a4e4..17bd814f4431099e7c30f708ea4770c19e03f31f 100755 --- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapConfig.java +++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapConfig.java @@ -89,6 +89,9 @@ public class LdapConfig 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"; + + public static final String LDAP_AVAIL_TEST_GROUP = "availabilityTestGroup"; + public static final String LDAP_AVAIL_TEST_CALLING_USER_DN = "availabilityTestCallingUserDN"; private String usersDN; private String groupsDN; @@ -97,6 +100,9 @@ public class LdapConfig private int port; private String adminUserDN; private String adminPasswd; + + private String availabilityTestGroup; + private String availabilityTestCallingUserDN; public static LdapConfig getLdapConfig() { @@ -167,15 +173,36 @@ public class LdapConfig throw new RuntimeException("failed to read property " + LDAP_ADMIN_GROUPS_DN); } + + String availGroup = config.getProperty(LDAP_AVAIL_TEST_GROUP); + if (!StringUtil.hasText(availGroup)) + { + throw new RuntimeException("failed to read property " + + LDAP_AVAIL_TEST_GROUP); + } + + String availUser = config.getProperty(LDAP_AVAIL_TEST_CALLING_USER_DN); + if (!StringUtil.hasText(availUser)) + { + throw new RuntimeException("failed to read property " + + LDAP_AVAIL_TEST_CALLING_USER_DN); + } return new LdapConfig(server, Integer.valueOf(port), ldapAdmin, ldapPasswd, ldapUsersDn, ldapGroupsDn, - ldapAdminGroupsDn); + ldapAdminGroupsDn, availGroup, availUser); + } + + public LdapConfig(String server, int port, String adminUserDN, + String adminPasswd, String usersDN, String groupsDN, + String adminGroupsDN) + { + this(server, port, adminUserDN, adminPasswd, usersDN, groupsDN, adminGroupsDN, null, null); } public LdapConfig(String server, int port, String adminUserDN, String adminPasswd, String usersDN, String groupsDN, - String adminGroupsDN) + String adminGroupsDN, String availGroup, String availUser) { if (!StringUtil.hasText(server)) { @@ -206,6 +233,7 @@ public class LdapConfig { throw new IllegalArgumentException("Illegal admin groups LDAP DN"); } + this.server = server; this.port = port; @@ -214,6 +242,8 @@ public class LdapConfig this.usersDN = usersDN; this.groupsDN = groupsDN; this.adminGroupsDN = adminGroupsDN; + this.availabilityTestGroup = availGroup; + this.availabilityTestCallingUserDN = availUser; } public String getUsersDN() @@ -250,5 +280,15 @@ public class LdapConfig { return this.adminPasswd; } + + public String getAvailabilityTestGroup() + { + return this.availabilityTestGroup; + } + + public String getAvailabilityTestCallingUserDN() + { + return this.availabilityTestCallingUserDN; + } }