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());