From b537af89db259d53a9618b66b7f004303706e17e Mon Sep 17 00:00:00 2001
From: Alinga Yeung <Alinga.Yeung@nrc-cnrc.gc.ca>
Date: Mon, 25 Jul 2016 18:38:07 -0700
Subject: [PATCH] Story 1849. We now use Standard ID to look up the
 resourceIdentifier in LocalAuthority.properties.

---
 .../nrc/cadc/ac/server/ldap/LdapUserDAO.java   |  5 +++--
 .../nrc/cadc/ac/server/web/WhoAmIServlet.java  |  2 +-
 .../cadc/ac/server/web/WhoAmIServletTest.java  | 18 ++++++++++++++++--
 .../web/groups/RemoveUserMemberActionTest.java |  5 +++--
 .../nrc/cadc/ac/xml/AbstractReaderWriter.java  |  3 ++-
 .../ca/nrc/cadc/ac/client/UserClientTest.java  |  3 ++-
 cadcTomcat/build.xml                           |  2 +-
 .../cadc/tomcat/CadcBasicAuthenticator.java    |  4 +++-
 8 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java b/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java
index 24d3e033..bc9cb5d9 100755
--- a/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java
+++ b/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java
@@ -100,6 +100,7 @@ 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 ca.nrc.cadc.reg.Standards;
 import ca.nrc.cadc.reg.client.LocalAuthority;
 import ca.nrc.cadc.util.ObjectUtil;
 import ca.nrc.cadc.util.StringUtil;
@@ -739,7 +740,7 @@ public class LdapUserDAO extends LdapDAO
 
             // cache memberOf values in the user
             LocalAuthority localAuthority = new LocalAuthority();
-            URI gmsServiceURI = localAuthority.getServiceURI("ac");
+            URI gmsServiceURI = localAuthority.getServiceURI(Standards.GMS_GROUPS_01.toString());
 
             GroupMemberships gms = new GroupMemberships(gmsServiceURI.toString(), userID);
             user.appData = gms; // add even if empty
@@ -1277,7 +1278,7 @@ public class LdapUserDAO extends LdapDAO
     {
         UUID uuid = new UUID(0L, Long.parseLong(numericID));
         LocalAuthority localAuthority = new LocalAuthority();
-        URI umsServiceURI = localAuthority.getServiceURI("ac");
+        URI umsServiceURI = localAuthority.getServiceURI(Standards.UMS_REQS_01.toString());
         String uriString = umsServiceURI.toString() + "?" + uuid.toString();
         URI uri;
         try
diff --git a/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/WhoAmIServlet.java b/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/WhoAmIServlet.java
index 4bfcbc41..bbd0aee0 100644
--- a/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/WhoAmIServlet.java
+++ b/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/WhoAmIServlet.java
@@ -168,7 +168,7 @@ public class WhoAmIServlet extends HttpServlet
         final RegistryClient registryClient = getRegistryClient();
 
         LocalAuthority localAuthority = new LocalAuthority();
-        URI umsServiceURI = localAuthority.getServiceURI("ac");
+        URI umsServiceURI = localAuthority.getServiceURI(Standards.UMS_WHOAMI_01.toString());
         log.debug("ums service uri: " + umsServiceURI);
 
         final URL serviceURL = registryClient.getServiceURL(umsServiceURI, Standards.UMS_USERS_01, AuthMethod.CERT);
diff --git a/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/WhoAmIServletTest.java b/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/WhoAmIServletTest.java
index 86402ceb..ff7df8eb 100644
--- a/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/WhoAmIServletTest.java
+++ b/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/WhoAmIServletTest.java
@@ -82,17 +82,31 @@ import javax.security.auth.Subject;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import ca.nrc.cadc.ac.server.web.groups.AddUserMemberActionTest;
 import ca.nrc.cadc.auth.AuthMethod;
 import ca.nrc.cadc.reg.Standards;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import ca.nrc.cadc.auth.HttpPrincipal;
 import ca.nrc.cadc.reg.client.LocalAuthority;
 import ca.nrc.cadc.reg.client.RegistryClient;
+import ca.nrc.cadc.util.Log4jInit;
 
 
 public class WhoAmIServletTest
 {
+    private final static Logger log = Logger.getLogger(WhoAmIServletTest.class);
+
+    @BeforeClass
+    public static void setUpClass()
+    {
+        Log4jInit.setLevel("ca.nrc.cadc.ac", Level.INFO);
+    }
+
     @Test
     public void doGet() throws Exception
     {
@@ -135,13 +149,13 @@ public class WhoAmIServletTest
         expectLastCall().once();
 
         LocalAuthority localAuthority = new LocalAuthority();
-        URI umsServiceURI = localAuthority.getServiceURI("ac");
+        URI umsServiceURI = localAuthority.getServiceURI(Standards.UMS_WHOAMI_01.toString());
 
 //        expect(mockRegistry.getServiceURL(URI.create(umsServiceURI.toString() + "#users"),
 //                                          "http", "/%s?idType=HTTP")).
 //                andReturn(new URL("http://mysite.com/ac/users/CADCtest?idType=HTTP")).once();
 
-        expect(mockRegistry.getServiceURL(umsServiceURI, Standards.UMS_USERS_01, AuthMethod.PASSWORD))
+        expect(mockRegistry.getServiceURL(umsServiceURI, Standards.UMS_USERS_01, AuthMethod.CERT))
             .andReturn(new URL("http://mysite.com/ac/users")).once();
 
         replay(mockRequest, mockResponse, mockRegistry);
diff --git a/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/groups/RemoveUserMemberActionTest.java b/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/groups/RemoveUserMemberActionTest.java
index 0b7cfeed..5647059b 100644
--- a/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/groups/RemoveUserMemberActionTest.java
+++ b/cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/web/groups/RemoveUserMemberActionTest.java
@@ -92,6 +92,7 @@ import ca.nrc.cadc.ac.server.UserPersistence;
 import ca.nrc.cadc.auth.AuthenticationUtil;
 import ca.nrc.cadc.auth.HttpPrincipal;
 import ca.nrc.cadc.auth.IdentityType;
+import ca.nrc.cadc.reg.Standards;
 import ca.nrc.cadc.reg.client.LocalAuthority;
 import ca.nrc.cadc.util.Log4jInit;
 import ca.nrc.cadc.util.ObjectUtil;
@@ -118,7 +119,7 @@ public class RemoveUserMemberActionTest
         {
             User user = new User();
             LocalAuthority localAuthority = new LocalAuthority();
-            URI umsServiceURI = localAuthority.getServiceURI("ac");
+            URI umsServiceURI = localAuthority.getServiceURI(Standards.UMS_REQS_01.toString());
             InternalID internalID = new InternalID(new URI(umsServiceURI.toASCIIString() + "?" + UUID.randomUUID()));
             ObjectUtil.setField(user, internalID, "id");
 
@@ -172,7 +173,7 @@ public class RemoveUserMemberActionTest
         {
             User user = new User();
             LocalAuthority localAuthority = new LocalAuthority();
-            URI umsServiceURI = localAuthority.getServiceURI("ac");
+            URI umsServiceURI = localAuthority.getServiceURI(Standards.UMS_REQS_01.toString());
             InternalID internalID = new InternalID(new URI(umsServiceURI.toString() + "?" + UUID.randomUUID()));
             ObjectUtil.setField(user, internalID, "id");
 
diff --git a/cadcAccessControl/src/ca/nrc/cadc/ac/xml/AbstractReaderWriter.java b/cadcAccessControl/src/ca/nrc/cadc/ac/xml/AbstractReaderWriter.java
index 8c57ebe2..6d8f0058 100644
--- a/cadcAccessControl/src/ca/nrc/cadc/ac/xml/AbstractReaderWriter.java
+++ b/cadcAccessControl/src/ca/nrc/cadc/ac/xml/AbstractReaderWriter.java
@@ -104,6 +104,7 @@ import ca.nrc.cadc.auth.IdentityType;
 import ca.nrc.cadc.auth.NumericPrincipal;
 import ca.nrc.cadc.auth.OpenIdPrincipal;
 import ca.nrc.cadc.date.DateUtil;
+import ca.nrc.cadc.reg.Standards;
 import ca.nrc.cadc.reg.client.LocalAuthority;
 
 /**
@@ -156,7 +157,7 @@ public abstract class AbstractReaderWriter
     public AbstractReaderWriter()
     {
         LocalAuthority localAuthority = new LocalAuthority();
-        URI serviceURI = localAuthority.getServiceURI("ac");
+        URI serviceURI = localAuthority.getServiceURI(Standards.GMS_GROUPS_01.toString());
         gmsServiceURI = serviceURI.toString();
     }
 
diff --git a/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java b/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java
index 63244e38..4aa61444 100644
--- a/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java
+++ b/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/UserClientTest.java
@@ -86,6 +86,7 @@ import org.junit.Test;
 
 import ca.nrc.cadc.auth.HttpPrincipal;
 import ca.nrc.cadc.auth.NumericPrincipal;
+import ca.nrc.cadc.reg.Standards;
 import ca.nrc.cadc.reg.client.LocalAuthority;
 import ca.nrc.cadc.util.Log4jInit;
 
@@ -101,7 +102,7 @@ public class UserClientTest
     {
         Log4jInit.setLevel("ca.nrc.cadc.ac", Level.INFO);
         LocalAuthority localAuthority = new LocalAuthority();
-        umsServiceURI = localAuthority.getServiceURI("ac");
+        umsServiceURI = localAuthority.getServiceURI(Standards.UMS_USERS_01.toString());
     }
 
     @Test
diff --git a/cadcTomcat/build.xml b/cadcTomcat/build.xml
index ec069e38..a07f5a5d 100644
--- a/cadcTomcat/build.xml
+++ b/cadcTomcat/build.xml
@@ -86,7 +86,7 @@
     <!-- developer convenience: place for extra targets and properties -->
     <import file="extras.xml" optional="true" />
 
-    <property name="cadc"               value="${lib}/cadcUtil.jar" />
+    <property name="cadc"               value="${lib}/cadcUtil.jar:${lib}/cadcRegistry.jar" />
     <property name="log4j"              value="${ext.lib}/log4j.jar" />
     <property name="tomcat"             value="${ext.lib}/catalina.jar:${ext.lib}/tomcat-util.jar:${ext.lib}/tomcat-coyote.jar" />
     <property name="jars"               value="${cadc}:${log4j}:${tomcat}" />
diff --git a/cadcTomcat/src/ca/nrc/cadc/tomcat/CadcBasicAuthenticator.java b/cadcTomcat/src/ca/nrc/cadc/tomcat/CadcBasicAuthenticator.java
index 431cc1eb..c3845f91 100644
--- a/cadcTomcat/src/ca/nrc/cadc/tomcat/CadcBasicAuthenticator.java
+++ b/cadcTomcat/src/ca/nrc/cadc/tomcat/CadcBasicAuthenticator.java
@@ -83,6 +83,8 @@ import org.apache.catalina.realm.RealmBase;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 
+import ca.nrc.cadc.reg.Standards;
+
 /**
  * Custom class for Tomcat realm authentication.
  *
@@ -97,7 +99,7 @@ public class CadcBasicAuthenticator extends RealmBase
 {
 
     private static Logger log = Logger.getLogger(CadcBasicAuthenticator.class);
-    private static final String AC_URI = "ivo://cadc.nrc.ca/ac";
+    private static final String AC_URI = Standards.UMS_LOGIN_01.toString();
 
     static
     {
-- 
GitLab