Skip to content
LdapUserDAOTest.java 38.2 KiB
Newer Older
        final String password = "123456";

        final User expected = new User();
        expected.getIdentities().add(userID);

        expected.personalDetails = new PersonalDetails("foo", "bar");
        expected.personalDetails.email = email;

        final UserRequest userRequest = new UserRequest(expected, password.toCharArray());

        return userRequest;
    }

    private void addUser(final HttpPrincipal userID, final User user)
        throws Exception
    {
        final UserRequest userRequest = new UserRequest(user, "password".toCharArray());

        DNPrincipal dnPrincipal = new DNPrincipal("uid=" + userID.getName() + "," + config.getUsersDN());
        Subject subject = new Subject();
        subject.getPrincipals().add(dnPrincipal);

        // do everything as owner
        Subject.doAs(subject, new PrivilegedExceptionAction<Object>()
        {
            public Object run() throws Exception
            {
                try
                {
                    getUserDAO().addUserRequest(userRequest);
                    getUserDAO().approveUserRequest(userID);
                    return null;
                }
                catch (Exception e)
                {
                    throw new Exception("Problems", e);
                }
            }
        });
    }

    private void deleteUser(final HttpPrincipal userID)
        throws Exception
    {
        DNPrincipal dnPrincipal = new DNPrincipal("uid=" + userID.getName() + "," + config.getUsersDN());
        Subject subject = new Subject();
        subject.getPrincipals().add(dnPrincipal);

        // do everything as owner
        Subject.doAs(subject, new PrivilegedExceptionAction<Object>()
        {
            public Object run() throws Exception
            {
                try
                {
                    final LdapUserDAO userDAO = getUserDAO();
                    userDAO.deleteUser(userID, false);

                    return null;
                }
                catch (Exception e)
                {
                    throw new Exception("Problems", e);
                }
            }
        });
    }

    protected void testGetOneUserByEmailAddress(final String emailAddress, final String username)
        throws PrivilegedActionException
    {
        // do as servops
        Subject servops = SSLUtil.createSubject(new File(SERVOPS_PEM));
        Subject.doAs(servops, new PrivilegedExceptionAction<Object>()
        {
            public Object run() throws Exception
            {
                try
                {
                    final LdapUserDAO userDAO = getUserDAO();
                    final User user = userDAO.getUserByEmailAddress(emailAddress);
                    assertNotNull(user);
                    PersonalDetails pd =  user.personalDetails;
                    assertEquals(emailAddress, pd.email);
                    String actualName = user.getHttpPrincipal().getName();
                    assertEquals(username, actualName);

                    return null;
                }
                catch (Exception e)
                {
                    throw new Exception("Problems", e);
                }
            }
        });
    }


Jeff Burke's avatar
Jeff Burke committed
}