Skip to content
Snippets Groups Projects
Commit 4661da62 authored by Jeff Burke's avatar Jeff Burke
Browse files

Merge branch 'ac2' of gimli2:/srv/cadc/git/wopencadc into ac2

Conflicts:
	projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/GetUserAction.java
	projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/UserServlet.java
parents ab5fa4a8 d4990244
No related branches found
No related tags found
No related merge requests found
...@@ -71,17 +71,13 @@ import ca.nrc.cadc.ac.PersonalDetails; ...@@ -71,17 +71,13 @@ import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.ac.server.UserPersistence;
import org.apache.log4j.Logger;
import java.security.AccessControlContext; import javax.security.auth.Subject;
import java.security.AccessController; import java.security.AccessController;
import java.security.Principal; import java.security.Principal;
import java.security.PrivilegedExceptionAction;
import java.util.Set; import java.util.Set;
import javax.security.auth.Subject;
import org.apache.log4j.Logger;
public class GetUserAction extends AbstractUserAction public class GetUserAction extends AbstractUserAction
{ {
......
...@@ -68,11 +68,10 @@ ...@@ -68,11 +68,10 @@
*/ */
package ca.nrc.cadc.ac.server.web.users; package ca.nrc.cadc.ac.server.web.users;
import java.io.IOException; import ca.nrc.cadc.ac.server.web.SyncOutput;
import java.security.AccessControlContext; import ca.nrc.cadc.auth.AuthenticationUtil;
import java.security.AccessController; import ca.nrc.cadc.util.StringUtil;
import java.security.Principal; import org.apache.log4j.Logger;
import java.security.PrivilegedActionException;
import javax.security.auth.Subject; import javax.security.auth.Subject;
import javax.security.auth.x500.X500Principal; import javax.security.auth.x500.X500Principal;
...@@ -81,13 +80,10 @@ import javax.servlet.ServletException; ...@@ -81,13 +80,10 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import ca.nrc.cadc.util.StringUtil; import java.security.AccessController;
import java.security.Principal;
import org.apache.log4j.Logger; import java.security.PrivilegedActionException;
import ca.nrc.cadc.ac.server.web.SyncOutput;
import ca.nrc.cadc.auth.AuthenticationUtil;
public class UserServlet extends HttpServlet public class UserServlet extends HttpServlet
{ {
...@@ -95,7 +91,7 @@ public class UserServlet extends HttpServlet ...@@ -95,7 +91,7 @@ public class UserServlet extends HttpServlet
private static final long serialVersionUID = 5289130885807305288L; private static final long serialVersionUID = 5289130885807305288L;
private static final Logger log = Logger.getLogger(UserServlet.class); private static final Logger log = Logger.getLogger(UserServlet.class);
private String notAugmentedX500User; private String notAugmentedX500User;
@Override @Override
public void init(final ServletConfig config) throws ServletException public void init(final ServletConfig config) throws ServletException
{ {
......
...@@ -76,17 +76,13 @@ import java.util.Iterator; ...@@ -76,17 +76,13 @@ import java.util.Iterator;
import java.util.Set; import java.util.Set;
import javax.security.auth.Subject; import javax.security.auth.Subject;
import javax.security.auth.x500.X500Principal;
import ca.nrc.cadc.ac.*; import ca.nrc.cadc.ac.*;
import ca.nrc.cadc.auth.HttpPrincipal;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import ca.nrc.cadc.ac.xml.UserReader; import ca.nrc.cadc.ac.xml.UserReader;
import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.AuthenticationUtil;
import ca.nrc.cadc.auth.CookiePrincipal;
import ca.nrc.cadc.auth.NumericPrincipal;
import ca.nrc.cadc.net.HttpDownload; import ca.nrc.cadc.net.HttpDownload;
...@@ -144,50 +140,17 @@ public class UserClient ...@@ -144,50 +140,17 @@ public class UserClient
public void augmentSubject(Subject subject) public void augmentSubject(Subject subject)
{ {
Principal principal = this.getPrincipal(subject); Principal principal = this.getPrincipal(subject);
URL url = this.getURL(principal); if (principal != null)
log.debug("augmentSubject request to " + url.toString());
ByteArrayOutputStream out = new ByteArrayOutputStream();
HttpDownload download = new HttpDownload(url, out);
download.run();
this.handleThrowable(download);
this.augmentSubject(subject, this.getPrincipals(out));
}
protected void augmentSubject(Subject subject, Set<Principal> principals)
{
if (!principals.iterator().hasNext())
{
String name = subject.getPrincipals().iterator().next().getName();
String msg = "No UserIdentity in LDAP server for principal: " + name;
throw new IllegalStateException(msg);
}
for (Principal principal : principals)
{ {
if (principal instanceof HttpPrincipal) URL url = this.getURL(principal);
{ log.debug("augmentSubject request to " + url.toString());
subject.getPrincipals().add((HttpPrincipal)principal); ByteArrayOutputStream out = new ByteArrayOutputStream();
} HttpDownload download = new HttpDownload(url, out);
else if (principal instanceof X500Principal) download.run();
{
subject.getPrincipals().add((X500Principal)principal); this.handleThrowable(download);
} subject.getPrincipals().clear();
else if (principal instanceof NumericPrincipal) subject.getPrincipals().addAll(this.getPrincipals(out));
{
subject.getPrincipals().add((NumericPrincipal)principal);
}
else if (principal instanceof CookiePrincipal)
{
subject.getPrincipals().add((CookiePrincipal)principal);
}
else
{
final String msg = "Subject has unsupported principal " +
principal.getName() +
", not one of (X500, Cookie, HTTP or Cadc).";
throw new IllegalStateException(msg);
}
} }
} }
...@@ -198,12 +161,8 @@ public class UserClient ...@@ -198,12 +161,8 @@ public class UserClient
if (iterator.hasNext()) if (iterator.hasNext())
{ {
Principal principal = iterator.next(); Principal principal = iterator.next();
log.debug("alinga-- UserClient.getPrincipal(): principal = " + principal);
if (iterator.hasNext()) if (iterator.hasNext())
{ {
Principal principal1 = iterator.next();
log.debug("alinga-- UserClient.getPrincipal(): principal1 = " + principal1);
log.debug("alinga-- UserClient.getPrincipal(): number of principals = " + principals.size());
// Should only have one principal // Should only have one principal
final String msg = "Subject has more than one principal."; final String msg = "Subject has more than one principal.";
throw new IllegalArgumentException(msg); throw new IllegalArgumentException(msg);
...@@ -213,8 +172,7 @@ public class UserClient ...@@ -213,8 +172,7 @@ public class UserClient
} }
else else
{ {
final String msg = "Subject has no principal."; return null;
throw new IllegalArgumentException(msg);
} }
} }
......
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