From e3ebdacbd648388eb61a6bd2438cb79f69227232 Mon Sep 17 00:00:00 2001
From: Adrian Damian <Adrian.Damian@nrc-cnrc.gc.ca>
Date: Thu, 25 Sep 2014 08:57:01 -0700
Subject: [PATCH] Fix for integration test

---
 .../nrc/cadc/ac/server/RequestValidator.java  | 37 +++++++++----------
 .../cadc/ac/server/web/ACSearchRunner.java    |  6 +--
 2 files changed, 18 insertions(+), 25 deletions(-)

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 aed7d709..af7493f0 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 81601acb..0b9d76a6 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());
             
-- 
GitLab