Skip to content
Snippets Groups Projects
Commit bda36f07 authored by Adrian Damian's avatar Adrian Damian
Browse files

Changes after code review + merge with ac2

parent ff42612e
No related branches found
No related tags found
No related merge requests found
...@@ -102,7 +102,7 @@ public class LoginServlet extends HttpServlet ...@@ -102,7 +102,7 @@ public class LoginServlet extends HttpServlet
private static final Logger log = Logger.getLogger(LoginServlet.class); private static final Logger log = Logger.getLogger(LoginServlet.class);
private static final String CONTENT_TYPE = "text/plain"; private static final String CONTENT_TYPE = "text/plain";
// " as " - delimiter use for proxy user authentication // " 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 proxyGroup; // only users in this group can impersonate other users
String nonImpersonGroup; // users in this group cannot be impersonated String nonImpersonGroup; // users in this group cannot be impersonated
...@@ -140,13 +140,13 @@ public class LoginServlet extends HttpServlet ...@@ -140,13 +140,13 @@ public class LoginServlet extends HttpServlet
try try
{ {
log.info(logInfo.start()); log.info(logInfo.start());
String userID = request.getParameter("username"); String userID = request.getParameter("username").trim();
String proxyUser = null; String proxyUser = null;
if (userID.contains(PROXY_USER_DELIM)) String[] fields = userID.split(PROXY_USER_DELIM);
if (fields.length == 2 )
{ {
String[] fields = userID.split(PROXY_USER_DELIM); proxyUser = fields[0].trim();
proxyUser = fields[0]; userID = fields[1].trim();
userID = fields[1];
checkCanImpersonate(userID, proxyUser); checkCanImpersonate(userID, proxyUser);
} }
String password = request.getParameter("password"); String password = request.getParameter("password");
......
...@@ -126,7 +126,7 @@ public class WhoAmIServlet extends HttpServlet ...@@ -126,7 +126,7 @@ public class WhoAmIServlet extends HttpServlet
else else
{ {
redirect(response, currentWebPrincipals.toArray( redirect(response, currentWebPrincipals.toArray(
new HttpPrincipal[1])[0]); new HttpPrincipal[1])[0], request.getScheme());
} }
} }
catch (IllegalArgumentException e) catch (IllegalArgumentException e)
...@@ -155,14 +155,16 @@ public class WhoAmIServlet extends HttpServlet ...@@ -155,14 +155,16 @@ public class WhoAmIServlet extends HttpServlet
* *
* @param response The HTTP response. * @param response The HTTP response.
* @param webPrincipal The HttpPrincipal instance. * @param webPrincipal The HttpPrincipal instance.
* @param scheme The scheme
*/ */
void redirect(final HttpServletResponse response, void redirect(final HttpServletResponse response,
final HttpPrincipal webPrincipal) throws IOException final HttpPrincipal webPrincipal,
final String scheme) throws IOException
{ {
final RegistryClient registryClient = getRegistryClient(); final RegistryClient registryClient = getRegistryClient();
final URL redirectURL = final URL redirectURL =
registryClient.getServiceURL( 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. // Take the first one.
final String redirectUrl = final String redirectUrl =
......
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.security.AccessControlException;
import java.util.Collection; import java.util.Collection;
...@@ -13,9 +16,6 @@ import ca.nrc.cadc.ac.server.GroupDetailSelector; ...@@ -13,9 +16,6 @@ import ca.nrc.cadc.ac.server.GroupDetailSelector;
import ca.nrc.cadc.ac.server.ldap.LdapGroupPersistence; import ca.nrc.cadc.ac.server.ldap.LdapGroupPersistence;
import ca.nrc.cadc.auth.HttpPrincipal; import ca.nrc.cadc.auth.HttpPrincipal;
import static org.junit.Assert.fail;
import static org.junit.Assert.assertTrue;
public class UserLoginServletTest public class UserLoginServletTest
{ {
@Test @Test
......
...@@ -122,13 +122,14 @@ public class WhoAmIServletTest ...@@ -122,13 +122,14 @@ public class WhoAmIServletTest
expect(mockRequest.getPathInfo()).andReturn("users/CADCtest").once(); expect(mockRequest.getPathInfo()).andReturn("users/CADCtest").once();
expect(mockRequest.getMethod()).andReturn("GET").once(); expect(mockRequest.getMethod()).andReturn("GET").once();
expect(mockRequest.getRemoteAddr()).andReturn("mysite.com").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(); expectLastCall().once();
expect(mockRegistry.getServiceURL(URI.create(AC.GMS_SERVICE_URI), expect(mockRegistry.getServiceURL(URI.create(AC.GMS_SERVICE_URI),
"http", "/users/%s?idType=HTTP")). "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); replay(mockRequest, mockResponse, mockRegistry);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment