From 9d7c2c0be94c0353fba4809c04d7e7d16fd9d1af Mon Sep 17 00:00:00 2001
From: Brian Major <brian.major@nrc-cnrc.gc.ca>
Date: Thu, 25 Sep 2014 14:22:29 -0700
Subject: [PATCH] s1651 - Extended LdapConfig to include availability info. 
 Added http endpoints for new gms registry entry.

---
 .../nrc/cadc/ac/server/ldap/LdapConfig.java   | 44 ++++++++++++++++++-
 1 file changed, 42 insertions(+), 2 deletions(-)

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 817b3e84..17bd814f 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;
+    }
 
 }
-- 
GitLab