diff --git a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
index a6e74d851f295d0c76696795b69dbeddd8bfd071..22f609ad0ee492fc483f24a34a0f3b87c6ae87b3 100644
--- a/projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
+++ b/projects/cadcAccessControl/src/ca/nrc/cadc/ac/User.java
@@ -143,4 +143,22 @@ public class User<T extends Principal>
         return getClass().getSimpleName() + "[" + userID.getName() + "]";
     }
 
+    public <S extends UserDetails> Set<S> getDetails(
+            final Class<S> userDetailsClass)
+    {
+        final Set<S> matchedDetails = new HashSet<S>();
+
+        for (final UserDetails ud : details)
+        {
+            if (ud.getClass() == userDetailsClass)
+            {
+                // This casting shouldn't happen, but it's the only way to
+                // do this without a lot of work.
+                // jenkinsd 2014.09.26
+                matchedDetails.add((S) ud);
+            }
+        }
+
+        return matchedDetails;
+    }
 }
diff --git a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java
index 8d8a802704ad9bb4fcf2220ae858088e4dceda71..78b636ffbec33f7ca5276c9948b755900b1bca7f 100644
--- a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java
+++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/UserTest.java
@@ -67,9 +67,7 @@
  ************************************************************************
  */package ca.nrc.cadc.ac;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import javax.security.auth.x500.X500Principal;
 
@@ -200,4 +198,19 @@ public class UserTest
         }
         assertTrue(thrown);
     }
+
+    @Test
+    public void getDetails() throws Exception
+    {
+        final User<HttpPrincipal> testSubject =
+                new User<HttpPrincipal>(new HttpPrincipal("test"));
+
+        testSubject.details.add(new PersonalDetails("First", "Last"));
+
+        assertTrue("Should be empty.",
+                   testSubject.getDetails(PosixDetails.class).isEmpty());
+
+        assertEquals("Should be 1.", 1,
+                     testSubject.getDetails(PersonalDetails.class).size());
+    }
 }
diff --git a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java
index a49b7e9ddf687709edee2c6b02adfea3df5c613e..c29407b57bc87dfbc58dd451474cdf527be5cf95 100644
--- a/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java
+++ b/projects/cadcAccessControl/test/src/ca/nrc/cadc/ac/client/GMSClientTest.java
@@ -110,7 +110,8 @@ public class GMSClientTest
             subject.getPrincipals().add(userID);
             
             RegistryClient regClient = new RegistryClient();
-            URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI));
+            URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI),
+                                                  "https");
             GMSClient client = new GMSClient(baseURL.toString());
 
             Assert.assertFalse(client.userIsSubject(null, null));
@@ -148,7 +149,8 @@ public class GMSClientTest
                     public Object run() throws Exception
                     {
                         RegistryClient regClient = new RegistryClient();
-                        URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI));
+                        URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI),
+                                                              "https");
                         GMSClient client = new GMSClient(baseURL.toString());
 
                         List<Group> initial = client.getCachedGroups(userID, Role.MEMBER);
@@ -180,7 +182,8 @@ public class GMSClientTest
 
             // do the same without a subject
             RegistryClient regClient = new RegistryClient();
-            URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI));
+            URL baseURL = regClient.getServiceURL(new URI(AC.GMS_SERVICE_URI),
+                                                  "https");
             GMSClient client = new GMSClient(baseURL.toString());
 
             List<Group> initial = client.getCachedGroups(userID, Role.MEMBER);