From 978fc0a3892f08e56be9073c896d7ea38fb5e795 Mon Sep 17 00:00:00 2001 From: Brian Major <major.brian@gmail.com> Date: Tue, 22 Mar 2016 11:51:32 -0700 Subject: [PATCH] s1890 - corrected internal service lookup --- .../nrc/cadc/ac/server/web/WhoAmIServlet.java | 28 ++++++++++--------- .../src/ca/nrc/cadc/ac/client/UserClient.java | 3 ++ 2 files changed, 18 insertions(+), 13 deletions(-) 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 0a06a9bb..e97e1165 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 @@ -68,22 +68,24 @@ package ca.nrc.cadc.ac.server.web; -import ca.nrc.cadc.ac.AC; -import ca.nrc.cadc.auth.AuthenticationUtil; -import ca.nrc.cadc.auth.HttpPrincipal; -import ca.nrc.cadc.log.ServletLogInfo; -import ca.nrc.cadc.reg.client.RegistryClient; -import org.apache.log4j.Logger; +import java.io.IOException; +import java.net.URI; +import java.net.URL; +import java.util.Set; import javax.security.auth.Subject; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.net.URI; -import java.net.URL; -import java.util.Set; + +import org.apache.log4j.Logger; + +import ca.nrc.cadc.ac.AC; +import ca.nrc.cadc.auth.AuthenticationUtil; +import ca.nrc.cadc.auth.HttpPrincipal; +import ca.nrc.cadc.log.ServletLogInfo; +import ca.nrc.cadc.reg.client.RegistryClient; /** * Servlet to handle GET requests asking for the current User. This servlet @@ -95,7 +97,7 @@ public class WhoAmIServlet extends HttpServlet { private static final Logger log = Logger.getLogger(WhoAmIServlet.class); - static final String USER_GET_PATH = "/users/%s?idType=HTTP"; + static final String USER_GET_PATH = "/%s?idType=HTTP"; /** * Handle a /whoami GET operation. @@ -158,13 +160,13 @@ public class WhoAmIServlet extends HttpServlet * @param scheme The scheme */ void redirect(final HttpServletResponse response, - final HttpPrincipal webPrincipal, + final HttpPrincipal webPrincipal, final String scheme) throws IOException { final RegistryClient registryClient = getRegistryClient(); final URL redirectURL = registryClient.getServiceURL( - URI.create(AC.GMS_SERVICE_URI), scheme, USER_GET_PATH); + URI.create(AC.UMS_SERVICE_URI + "#users"), scheme, USER_GET_PATH); // Take the first one. final String redirectUrl = diff --git a/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java b/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java index b3f1fa5c..8e278008 100644 --- a/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java +++ b/cadcAccessControl/src/ca/nrc/cadc/ac/client/UserClient.java @@ -166,6 +166,9 @@ public class UserClient // augment subject calls are always https with client certs URL getUserURL = registryClient.getServiceURL(usersURI, "https", path, AuthMethod.CERT); + if (getUserURL == null) + throw new IllegalArgumentException("No service endpoint for uri " + usersURI); + log.debug("augmentSubject request to " + getUserURL.toString()); ByteArrayOutputStream out = new ByteArrayOutputStream(); HttpDownload download = new HttpDownload(getUserURL, out); -- GitLab