Commit bda36f07 authored by Adrian Damian's avatar Adrian Damian
Browse files

Changes after code review + merge with ac2

parent ff42612e
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ public class LoginServlet extends HttpServlet
    private static final Logger log = Logger.getLogger(LoginServlet.class);
    private static final String CONTENT_TYPE = "text/plain";
    // " as " - delimiter use for proxy user authentication
    public static final String PROXY_USER_DELIM = "(.*)/s[aA][sS]/s(.*";
    public static final String PROXY_USER_DELIM = "\\s[aA][sS]\\s";
    String proxyGroup; // only users in this group can impersonate other users
    String nonImpersonGroup; // users in this group cannot be impersonated
    
@@ -140,13 +140,13 @@ public class LoginServlet extends HttpServlet
        try
        {
            log.info(logInfo.start());
            String userID = request.getParameter("username");
            String userID = request.getParameter("username").trim();
            String proxyUser = null;
            if (userID.contains(PROXY_USER_DELIM))
            {
            String[] fields = userID.split(PROXY_USER_DELIM);
                proxyUser = fields[0];
                userID = fields[1];
            if (fields.length == 2 )
            {
                proxyUser = fields[0].trim();
                userID = fields[1].trim();
                checkCanImpersonate(userID, proxyUser);
            }
            String password = request.getParameter("password");
+5 −3
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ public class WhoAmIServlet extends HttpServlet
            else
            {
                redirect(response, currentWebPrincipals.toArray(
                        new HttpPrincipal[1])[0]);
                        new HttpPrincipal[1])[0], request.getScheme());
            }
        }
        catch (IllegalArgumentException e)
@@ -155,14 +155,16 @@ public class WhoAmIServlet extends HttpServlet
     *
     * @param response     The HTTP response.
     * @param webPrincipal The HttpPrincipal instance.
     * @param scheme       The scheme
     */
    void redirect(final HttpServletResponse response,
                  final HttpPrincipal webPrincipal) throws IOException
                  final HttpPrincipal webPrincipal, 
                  final String scheme) throws IOException
    {
        final RegistryClient registryClient = getRegistryClient();
        final URL redirectURL =
                registryClient.getServiceURL(
                        URI.create(AC.GMS_SERVICE_URI), "https", USER_GET_PATH);
                        URI.create(AC.GMS_SERVICE_URI), scheme, USER_GET_PATH);

        // Take the first one.
        final String redirectUrl =
+4 −4
Original line number Diff line number Diff line
package ca.nrc.cadc.ac.server.web.users;
package ca.nrc.cadc.ac.server.web;

import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.security.AccessControlException;
import java.util.Collection;
@@ -13,9 +16,6 @@ import ca.nrc.cadc.ac.server.GroupDetailSelector;
import ca.nrc.cadc.ac.server.ldap.LdapGroupPersistence;
import ca.nrc.cadc.auth.HttpPrincipal;

import static org.junit.Assert.fail;
import static org.junit.Assert.assertTrue;

public class UserLoginServletTest
{
    @Test
+3 −2
Original line number Diff line number Diff line
@@ -122,13 +122,14 @@ public class WhoAmIServletTest
        expect(mockRequest.getPathInfo()).andReturn("users/CADCtest").once();
        expect(mockRequest.getMethod()).andReturn("GET").once();
        expect(mockRequest.getRemoteAddr()).andReturn("mysite.com").once();
        expect(mockRequest.getScheme()).andReturn("http");

        mockResponse.sendRedirect("https://mysite.com/ac/users/CADCtest?idType=HTTP");
        mockResponse.sendRedirect("http://mysite.com/ac/users/CADCtest?idType=HTTP");
        expectLastCall().once();

        expect(mockRegistry.getServiceURL(URI.create(AC.GMS_SERVICE_URI),
                                          "http", "/users/%s?idType=HTTP")).
                andReturn(new URL("https://mysite.com/ac/users/CADCtest?idType=HTTP")).once();
                andReturn(new URL("http://mysite.com/ac/users/CADCtest?idType=HTTP")).once();

        replay(mockRequest, mockResponse, mockRegistry);