Commit 66d1cf3e authored by Brian Major's avatar Brian Major
Browse files

s1885 - Removed service URI from AC.java

parents 326bef5d 1637be8e
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -115,6 +115,9 @@
    <mkdir dir="${user.home}/config" />
    <mkdir dir="${user.home}/config" />
    <copy overwrite="true" file="test/LdapConfig.test.properties"
    <copy overwrite="true" file="test/LdapConfig.test.properties"
          todir="${user.home}/config/"/>
          todir="${user.home}/config/"/>
    <copy overwrite="true"
          file="${env.CADC_PREFIX}/etc/LocalAuthority.properties"
          tofile="${build}/class/LocalAuthority.properties"/>
  </target>
  </target>


  <!-- JAR files needed to run the test suite -->
  <!-- JAR files needed to run the test suite -->
+8 −12
Original line number Original line Diff line number Diff line
@@ -86,7 +86,6 @@ import javax.security.auth.x500.X500Principal;


import org.apache.log4j.Logger;
import org.apache.log4j.Logger;


import ca.nrc.cadc.ac.AC;
import ca.nrc.cadc.ac.Group;
import ca.nrc.cadc.ac.Group;
import ca.nrc.cadc.ac.InternalID;
import ca.nrc.cadc.ac.InternalID;
import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.PersonalDetails;
@@ -101,6 +100,7 @@ import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.auth.NumericPrincipal;
import ca.nrc.cadc.auth.NumericPrincipal;
import ca.nrc.cadc.net.TransientException;
import ca.nrc.cadc.net.TransientException;
import ca.nrc.cadc.profiler.Profiler;
import ca.nrc.cadc.profiler.Profiler;
import ca.nrc.cadc.reg.client.LocalAuthority;
import ca.nrc.cadc.util.ObjectUtil;
import ca.nrc.cadc.util.ObjectUtil;
import ca.nrc.cadc.util.StringUtil;
import ca.nrc.cadc.util.StringUtil;


@@ -140,8 +140,6 @@ public class LdapUserDAO extends LdapDAO


    private static final Logger logger = Logger.getLogger(LdapUserDAO.class);
    private static final Logger logger = Logger.getLogger(LdapUserDAO.class);


    private String internalIdUriPrefix = AC.USER_URI;

    // Map of identity type to LDAP attribute
    // Map of identity type to LDAP attribute
    private final Map<Class<?>, String> userLdapAttrib = new HashMap<Class<?>, String>();
    private final Map<Class<?>, String> userLdapAttrib = new HashMap<Class<?>, String>();


@@ -740,7 +738,10 @@ public class LdapUserDAO extends LdapDAO
            user.getIdentities().add(new DNPrincipal(searchResult.getAttributeValue(LDAP_ENTRYDN)));
            user.getIdentities().add(new DNPrincipal(searchResult.getAttributeValue(LDAP_ENTRYDN)));


            // cache memberOf values in the user
            // cache memberOf values in the user
            GroupMemberships gms = new GroupMemberships(userID);
            LocalAuthority localAuthority = new LocalAuthority();
            URI gmsServiceURI = localAuthority.getServiceURI("gms");

            GroupMemberships gms = new GroupMemberships(gmsServiceURI.toString(), userID);
            user.appData = gms; // add even if empty
            user.appData = gms; // add even if empty
            String[] mems = searchResult.getAttributeValues(LDAP_MEMBEROF);
            String[] mems = searchResult.getAttributeValues(LDAP_MEMBEROF);
            if (mems != null && mems.length > 0)
            if (mems != null && mems.length > 0)
@@ -926,8 +927,6 @@ public class LdapUserDAO extends LdapDAO
    public User modifyUser(final User user)
    public User modifyUser(final User user)
            throws UserNotFoundException, TransientException, AccessControlException
            throws UserNotFoundException, TransientException, AccessControlException
    {
    {
        // Will we always have a HttpPrincipal?
        User existingUser = getUser(user.getHttpPrincipal());


        List<Modification> mods = new ArrayList<Modification>();
        List<Modification> mods = new ArrayList<Modification>();


@@ -1274,15 +1273,12 @@ public class LdapUserDAO extends LdapDAO
        return uuid.getLeastSignificantBits();
        return uuid.getLeastSignificantBits();
    }
    }


    protected void setInternalIdUriPrefix(String internalIdUriPrefix)
    {
        this.internalIdUriPrefix = internalIdUriPrefix;
    }

    protected InternalID getInternalID(String numericID)
    protected InternalID getInternalID(String numericID)
    {
    {
        UUID uuid = new UUID(0L, Long.parseLong(numericID));
        UUID uuid = new UUID(0L, Long.parseLong(numericID));
        String uriString = internalIdUriPrefix + "?" + uuid.toString();
        LocalAuthority localAuthority = new LocalAuthority();
        URI umsServiceURI = localAuthority.getServiceURI("ums");
        String uriString = umsServiceURI.toString() + "?" + uuid.toString();
        URI uri;
        URI uri;
        try
        try
        {
        {
+17 −45
Original line number Original line Diff line number Diff line
@@ -121,7 +121,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            userDAO.addUser(user);
            userDAO.addUser(user);
        }
        }
        finally
        finally
@@ -146,7 +146,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            userDAO.addUserRequest(userRequest);
            userDAO.addUserRequest(userRequest);
        }
        }
        finally
        finally
@@ -177,7 +177,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.getUser(userID);
            return userDAO.getUser(userID);
        }
        }
        finally
        finally
@@ -205,7 +205,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
            LdapConnections conns = new LdapConnections(this);
            LdapConnections conns = new LdapConnections(this);
            try
            try
            {
            {
                LdapUserDAO userDAO = getLdapUserDao(conns);
                LdapUserDAO userDAO = new LdapUserDAO(conns);
                return userDAO.getUserByEmailAddress(emailAddress);
                return userDAO.getUserByEmailAddress(emailAddress);
            }
            }
            finally
            finally
@@ -234,7 +234,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.getUserRequest(userID);
            return userDAO.getUserRequest(userID);
        }
        }
        finally
        finally
@@ -243,8 +243,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        }
        }
    }
    }


    /**<<<<<<< HEAD
    /**

     * Get the user specified by userID with all of the users identities.
     * Get the user specified by userID with all of the users identities.
     *
     *
     * @param userID The userID.
     * @param userID The userID.
@@ -264,7 +263,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        try
        try
        {
        {
            Profiler profiler = new Profiler(LdapUserPersistence.class);
            Profiler profiler = new Profiler(LdapUserPersistence.class);
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            profiler.checkpoint("Create LdapUserDAO");
            profiler.checkpoint("Create LdapUserDAO");
            User user = userDAO.getAugmentedUser(userID);
            User user = userDAO.getAugmentedUser(userID);
            profiler.checkpoint("getAugmentedUser");
            profiler.checkpoint("getAugmentedUser");
@@ -299,7 +298,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.getUsers();
            return userDAO.getUsers();
        }
        }
        finally
        finally
@@ -323,7 +322,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.getUserRequests();
            return userDAO.getUserRequests();
        }
        }
        finally
        finally
@@ -353,7 +352,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.approveUserRequest(userID);
            return userDAO.approveUserRequest(userID);
        }
        }
        finally
        finally
@@ -385,7 +384,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.modifyUser(user);
            return userDAO.modifyUser(user);
        }
        }
        finally
        finally
@@ -415,7 +414,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            userDAO.deleteUser(userID, true);
            userDAO.deleteUser(userID, true);
        }
        }
        finally
        finally
@@ -444,7 +443,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            userDAO.deleteUser(userID, false);
            userDAO.deleteUser(userID, false);
        }
        }
        finally
        finally
@@ -471,7 +470,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            userDAO.deleteUserRequest(userID);
            userDAO.deleteUserRequest(userID);
        }
        }
        finally
        finally
@@ -498,7 +497,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            return userDAO.doLogin(userID, password);
            return userDAO.doLogin(userID, password);
        }
        }
        finally
        finally
@@ -510,11 +509,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
    /**
    /**
     * Update a user's password. The given user and authenticating user must match.
     * Update a user's password. The given user and authenticating user must match.
     *
     *
<<<<<<< HEAD
     * @param userID        the user.
     * @param userID        the user.
=======
     * @param userID
>>>>>>> efc84b5d25584bd3014fc6cbc820c5acf0d90a2a
     * @param oldPassword   current password.
     * @param oldPassword   current password.
     * @param newPassword   new password.
     * @param newPassword   new password.
     * @throws UserNotFoundException If the given user does not exist.
     * @throws UserNotFoundException If the given user does not exist.
@@ -532,7 +527,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            if (userDAO.doLogin(userID.getName(), oldPassword))
            if (userDAO.doLogin(userID.getName(), oldPassword))
            {
            {
                // oldPassword is correct
                // oldPassword is correct
@@ -548,11 +543,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
    /**
    /**
     * Reset a user's password. The given user and authenticating user must match.
     * Reset a user's password. The given user and authenticating user must match.
     *
     *
<<<<<<< HEAD
     * @param userID        The user.
     * @param userID        The user.
=======
     * @param userID
>>>>>>> efc84b5d25584bd3014fc6cbc820c5acf0d90a2a
     * @param newPassword   new password.
     * @param newPassword   new password.
     * @throws UserNotFoundException If the given user does not exist.
     * @throws UserNotFoundException If the given user does not exist.
     * @throws TransientException   If an temporary, unexpected problem occurred.
     * @throws TransientException   If an temporary, unexpected problem occurred.
@@ -569,7 +560,7 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        LdapConnections conns = new LdapConnections(this);
        LdapConnections conns = new LdapConnections(this);
        try
        try
        {
        {
            userDAO = getLdapUserDao(conns);
            userDAO = new LdapUserDAO(conns);
            User user = getUser(userID);
            User user = getUser(userID);


            if (user != null)
            if (user != null)
@@ -613,23 +604,4 @@ public class LdapUserPersistence extends LdapPersistence implements UserPersiste
        return false;
        return false;
    }
    }


    private LdapUserDAO getLdapUserDao(LdapConnections conn)
    {
        LdapUserDAO dao = new LdapUserDAO(conn);
        if (getInternalIdUriPrefix() != null)
            dao.setInternalIdUriPrefix(getInternalIdUriPrefix());
        return dao;
    }

    /**
     * Web services can override this method to change
     * the user prefix used in the internal ID.
     *
     * By default the LdapUserDAO will use AC.USER_URI;
     */
    protected String getInternalIdUriPrefix()
    {
        return null;
    }

}
}
+8 −2
Original line number Original line Diff line number Diff line
@@ -81,10 +81,10 @@ import javax.servlet.http.HttpServletResponse;


import org.apache.log4j.Logger;
import org.apache.log4j.Logger;


import ca.nrc.cadc.ac.AC;
import ca.nrc.cadc.auth.AuthenticationUtil;
import ca.nrc.cadc.auth.AuthenticationUtil;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.log.ServletLogInfo;
import ca.nrc.cadc.log.ServletLogInfo;
import ca.nrc.cadc.reg.client.LocalAuthority;
import ca.nrc.cadc.reg.client.RegistryClient;
import ca.nrc.cadc.reg.client.RegistryClient;


/**
/**
@@ -164,9 +164,15 @@ public class WhoAmIServlet extends HttpServlet
                  final String scheme) throws IOException
                  final String scheme) throws IOException
    {
    {
        final RegistryClient registryClient = getRegistryClient();
        final RegistryClient registryClient = getRegistryClient();

        LocalAuthority localAuthority = new LocalAuthority();
        URI umsServiceURI = localAuthority.getServiceURI("ums");

        log.debug("ums service uri: " + umsServiceURI);

        final URL redirectURL =
        final URL redirectURL =
                registryClient.getServiceURL(
                registryClient.getServiceURL(
                        URI.create(AC.UMS_SERVICE_URI + "#users"), scheme, USER_GET_PATH);
                        URI.create(umsServiceURI.toString() + "#users"), scheme, USER_GET_PATH);


        // Take the first one.
        // Take the first one.
        final String redirectUrl =
        final String redirectUrl =
+5 −2
Original line number Original line Diff line number Diff line
@@ -84,8 +84,8 @@ import javax.servlet.http.HttpServletResponse;


import org.junit.Test;
import org.junit.Test;


import ca.nrc.cadc.ac.AC;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.reg.client.LocalAuthority;
import ca.nrc.cadc.reg.client.RegistryClient;
import ca.nrc.cadc.reg.client.RegistryClient;




@@ -132,7 +132,10 @@ public class WhoAmIServletTest
        mockResponse.sendRedirect("/ac/users/CADCtest?idType=HTTP");
        mockResponse.sendRedirect("/ac/users/CADCtest?idType=HTTP");
        expectLastCall().once();
        expectLastCall().once();


        expect(mockRegistry.getServiceURL(URI.create(AC.UMS_SERVICE_URI + "#users"),
        LocalAuthority localAuthority = new LocalAuthority();
        URI umsServiceURI = localAuthority.getServiceURI("ums");

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


Loading