Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/UserServlet.java +11 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import ca.nrc.cadc.ac.server.web.users.UserActionFactory; import ca.nrc.cadc.ac.server.web.users.UserLogInfo; import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.ServletPrincipalExtractor; import ca.nrc.cadc.profiler.Profiler; import ca.nrc.cadc.util.StringUtil; import org.apache.log4j.Logger; Loading @@ -96,6 +97,8 @@ public class UserServlet extends HttpServlet private static final long serialVersionUID = 5289130885807305288L; private static final Logger log = Logger.getLogger(UserServlet.class); private Profiler profiler = new Profiler(UserServlet.class); private String notAugmentedX500User; @Override Loading Loading @@ -129,20 +132,24 @@ public class UserServlet extends HttpServlet AbstractUserAction action = factory.createAction(request); action.setAcceptedContentType(getAcceptedContentType(request)); log.debug("content-type: " + getAcceptedContentType(request)); profiler.checkpoint("created action"); // Special case: if the calling subject has a servops X500Principal, // AND it is a GET request, do not augment the subject. Subject subject; if (action instanceof GetUserAction && isNotAugmentedSubject(request)) { profiler.checkpoint("check not augmented user"); subject = Subject.getSubject(AccessController.getContext()); log.debug("subject not augmented: " + subject); action.setAugmentUser(true); profiler.checkpoint("set not augmented user"); } else { subject = AuthenticationUtil.getSubject(request); log.debug("augmented subject: " + subject); profiler.checkpoint("augment subject"); } logInfo.setSubject(subject); Loading Loading @@ -175,6 +182,10 @@ public class UserServlet extends HttpServlet } throw e; } finally { profiler.checkpoint("Executed action"); } } catch (IllegalArgumentException e) { Loading projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/GetUserAction.java +12 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,8 @@ import ca.nrc.cadc.ac.PersonalDetails; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.profiler.Profiler; import org.apache.log4j.Logger; import javax.security.auth.Subject; Loading @@ -83,6 +85,8 @@ public class GetUserAction extends AbstractUserAction { private static final Logger log = Logger.getLogger(GetUserAction.class); private Profiler profiler = new Profiler(GetUserAction.class); private final Principal userID; private final String detail; Loading @@ -96,7 +100,9 @@ public class GetUserAction extends AbstractUserAction public void doAction() throws Exception { User<Principal> user = getUser(this.userID); profiler.checkpoint("getUser"); writeUser(user); profiler.checkpoint("writeUser"); } protected User<Principal> getUser(Principal principal) throws Exception Loading @@ -113,6 +119,7 @@ public class GetUserAction extends AbstractUserAction { log.debug("getting augmented user " + principal.getName()); user = userPersistence.getAugmentedUser(principal); profiler.checkpoint("getAugmentedUser"); } /** Loading @@ -129,6 +136,7 @@ public class GetUserAction extends AbstractUserAction Subject subject = Subject.getSubject(AccessController.getContext()); user = new User<Principal>(principal); user.getIdentities().addAll(subject.getPrincipals()); profiler.checkpoint("added identities"); } else { Loading @@ -136,10 +144,12 @@ public class GetUserAction extends AbstractUserAction try { user = userPersistence.getUser(principal); profiler.checkpoint("getUser"); } catch (UserNotFoundException e) { user = userPersistence.getPendingUser(principal); profiler.checkpoint("getPendingUser"); } // Only return user profile info, first and last name. Loading @@ -155,6 +165,7 @@ public class GetUserAction extends AbstractUserAction PersonalDetails pd = details.iterator().next(); user.details.clear(); user.details.add(new PersonalDetails(pd.getFirstName(), pd.getLastName())); profiler.checkpoint("addUserDetails"); } } Loading @@ -176,6 +187,7 @@ public class GetUserAction extends AbstractUserAction } } } profiler.checkpoint("isSubjectUser"); return isSubjectUser; } } projects/cadcAccessControl-Server/src/ca/nrc/cadc/auth/AuthenticatorImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ public class AuthenticatorImpl implements Authenticator { private static final Logger log = Logger.getLogger(AuthenticatorImpl.class); private Profiler profiler = new Profiler(AuthenticatorImpl.class); public AuthenticatorImpl() { } /** Loading Loading @@ -124,6 +126,7 @@ public class AuthenticatorImpl implements Authenticator subject = AuthenticationUtil.getAnonSubject(); } } profiler.checkpoint("getSubject"); return subject; } Loading @@ -143,6 +146,7 @@ public class AuthenticatorImpl implements Authenticator log.debug("Null identities after augment"); } subject.getPrincipals().addAll(user.getIdentities()); profiler.checkpoint("augmentSubject"); } catch (UserNotFoundException e) { Loading Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/UserServlet.java +11 −0 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import ca.nrc.cadc.ac.server.web.users.UserActionFactory; import ca.nrc.cadc.ac.server.web.users.UserLogInfo; import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.auth.ServletPrincipalExtractor; import ca.nrc.cadc.profiler.Profiler; import ca.nrc.cadc.util.StringUtil; import org.apache.log4j.Logger; Loading @@ -96,6 +97,8 @@ public class UserServlet extends HttpServlet private static final long serialVersionUID = 5289130885807305288L; private static final Logger log = Logger.getLogger(UserServlet.class); private Profiler profiler = new Profiler(UserServlet.class); private String notAugmentedX500User; @Override Loading Loading @@ -129,20 +132,24 @@ public class UserServlet extends HttpServlet AbstractUserAction action = factory.createAction(request); action.setAcceptedContentType(getAcceptedContentType(request)); log.debug("content-type: " + getAcceptedContentType(request)); profiler.checkpoint("created action"); // Special case: if the calling subject has a servops X500Principal, // AND it is a GET request, do not augment the subject. Subject subject; if (action instanceof GetUserAction && isNotAugmentedSubject(request)) { profiler.checkpoint("check not augmented user"); subject = Subject.getSubject(AccessController.getContext()); log.debug("subject not augmented: " + subject); action.setAugmentUser(true); profiler.checkpoint("set not augmented user"); } else { subject = AuthenticationUtil.getSubject(request); log.debug("augmented subject: " + subject); profiler.checkpoint("augment subject"); } logInfo.setSubject(subject); Loading Loading @@ -175,6 +182,10 @@ public class UserServlet extends HttpServlet } throw e; } finally { profiler.checkpoint("Executed action"); } } catch (IllegalArgumentException e) { Loading
projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/GetUserAction.java +12 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,8 @@ import ca.nrc.cadc.ac.PersonalDetails; import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.UserNotFoundException; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.profiler.Profiler; import org.apache.log4j.Logger; import javax.security.auth.Subject; Loading @@ -83,6 +85,8 @@ public class GetUserAction extends AbstractUserAction { private static final Logger log = Logger.getLogger(GetUserAction.class); private Profiler profiler = new Profiler(GetUserAction.class); private final Principal userID; private final String detail; Loading @@ -96,7 +100,9 @@ public class GetUserAction extends AbstractUserAction public void doAction() throws Exception { User<Principal> user = getUser(this.userID); profiler.checkpoint("getUser"); writeUser(user); profiler.checkpoint("writeUser"); } protected User<Principal> getUser(Principal principal) throws Exception Loading @@ -113,6 +119,7 @@ public class GetUserAction extends AbstractUserAction { log.debug("getting augmented user " + principal.getName()); user = userPersistence.getAugmentedUser(principal); profiler.checkpoint("getAugmentedUser"); } /** Loading @@ -129,6 +136,7 @@ public class GetUserAction extends AbstractUserAction Subject subject = Subject.getSubject(AccessController.getContext()); user = new User<Principal>(principal); user.getIdentities().addAll(subject.getPrincipals()); profiler.checkpoint("added identities"); } else { Loading @@ -136,10 +144,12 @@ public class GetUserAction extends AbstractUserAction try { user = userPersistence.getUser(principal); profiler.checkpoint("getUser"); } catch (UserNotFoundException e) { user = userPersistence.getPendingUser(principal); profiler.checkpoint("getPendingUser"); } // Only return user profile info, first and last name. Loading @@ -155,6 +165,7 @@ public class GetUserAction extends AbstractUserAction PersonalDetails pd = details.iterator().next(); user.details.clear(); user.details.add(new PersonalDetails(pd.getFirstName(), pd.getLastName())); profiler.checkpoint("addUserDetails"); } } Loading @@ -176,6 +187,7 @@ public class GetUserAction extends AbstractUserAction } } } profiler.checkpoint("isSubjectUser"); return isSubjectUser; } }
projects/cadcAccessControl-Server/src/ca/nrc/cadc/auth/AuthenticatorImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ public class AuthenticatorImpl implements Authenticator { private static final Logger log = Logger.getLogger(AuthenticatorImpl.class); private Profiler profiler = new Profiler(AuthenticatorImpl.class); public AuthenticatorImpl() { } /** Loading Loading @@ -124,6 +126,7 @@ public class AuthenticatorImpl implements Authenticator subject = AuthenticationUtil.getAnonSubject(); } } profiler.checkpoint("getSubject"); return subject; } Loading @@ -143,6 +146,7 @@ public class AuthenticatorImpl implements Authenticator log.debug("Null identities after augment"); } subject.getPrincipals().addAll(user.getIdentities()); profiler.checkpoint("augmentSubject"); } catch (UserNotFoundException e) { Loading