diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/RequestValidator.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/RequestValidator.java
index aed7d70912d12d8fa45962f859b453c0e6177864..af7493f007ea88d5a5182780b429a227e5dba801 100644
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/RequestValidator.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/RequestValidator.java
@@ -68,15 +68,16 @@
  */
 package ca.nrc.cadc.ac.server;
 
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
 import ca.nrc.cadc.ac.IdentityType;
 import ca.nrc.cadc.ac.Role;
+import ca.nrc.cadc.auth.AuthenticationUtil;
 import ca.nrc.cadc.uws.Parameter;
 import ca.nrc.cadc.uws.ParameterUtil;
 
+import java.security.Principal;
+import java.util.List;
+import org.apache.log4j.Logger;
+
 /**
  * Request Validator. This class extracts and validates the ID, TYPE, ROLE
  * and GURI parameters.
@@ -86,8 +87,7 @@ public class RequestValidator
 {
     private static final Logger log = Logger.getLogger(RequestValidator.class);
     
-    private String userID;
-    private IdentityType idType;
+    private Principal principal;
     private Role role;
     private String groupID;
     
@@ -95,8 +95,7 @@ public class RequestValidator
 
     private void clear()
     {
-        this.userID = null;
-        this.idType = null;
+        this.principal = null;
         this.role = null;
         this.groupID = null;
     }
@@ -107,7 +106,7 @@ public class RequestValidator
         if (paramList == null || paramList.isEmpty())
         {
             throw new IllegalArgumentException(
-                    "Missing required parameters: ID and IDTYPE");
+                    "Missing required parameters: ID and TYPE");
         }
 
         // ID
@@ -117,18 +116,21 @@ public class RequestValidator
             throw new IllegalArgumentException(
                     "ID parameter required but not found");
         }
-        this.userID = param.trim();
+        String userID = param.trim();
         log.debug("ID: " + userID);
 
-        // IDTYPE
+        // TYPE
         param = ParameterUtil.findParameterValue("IDTYPE", paramList);
         if (param == null || param.trim().isEmpty())
         {
             throw new IllegalArgumentException(
                     "IDTYPE parameter required but not found");
         }
-        this.idType = IdentityType.toValue(param);
-        log.debug("TYPE: " + idType);
+        
+        principal = 
+            AuthenticationUtil.createPrincipal(userID, 
+                                               param.trim());
+        log.debug("TYPE: " + param.trim());
         
         // ROLE
         param = ParameterUtil.findParameterValue("ROLE", paramList);
@@ -151,15 +153,10 @@ public class RequestValidator
         }
         log.debug("GROUPID: " + groupID);
     }
-
-    public String getUserID()
-    {
-        return userID;
-    }
     
-    public IdentityType getIDType()
+    public Principal getPrincipal()
     {
-        return idType;
+        return principal;
     }
 
     public Role getRole()
diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/ACSearchRunner.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/ACSearchRunner.java
index 81601acb9cc6598043893f4b78e29c2a006ba296..0b9d76a658108deff6ef7736741fa1f2e58bd5d9 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/ACSearchRunner.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/ACSearchRunner.java
@@ -166,14 +166,10 @@ public class ACSearchRunner
             RequestValidator rv = new RequestValidator();
             rv.validate(job.getParameterList());
             
-            Principal userID = 
-                AuthenticationUtil.createPrincipal(rv.getUserID(), 
-                                                   rv.getIDType().getValue());
-            
             PluginFactory factory = new PluginFactory();
             GroupPersistence dao = factory.getGroupPersistence();
             Collection<Group> groups = 
-                dao.getGroups(userID, rv.getRole(), rv.getGroupID());
+                dao.getGroups(rv.getPrincipal(), rv.getRole(), rv.getGroupID());
             syncOut.setResponseCode(HttpServletResponse.SC_OK);
             GroupsWriter.write(groups, syncOut.getOutputStream());