Commit 77f8e066 authored by Jeff Burke's avatar Jeff Burke
Browse files

s1840: fix for numeric changed to Integer, check for existing users before adding.

parent 737ed18d
Loading
Loading
Loading
Loading
+30 −5
Original line number Diff line number Diff line
@@ -288,6 +288,15 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
    public void addUser(final UserRequest<T> userRequest)
            throws TransientException, UserAlreadyExistsException
    {
        try
        {
            getUser(userRequest.getUser().getUserID(), config.getUsersDN());
            final String error = userRequest.getUser().getUserID().getName() +
                " fount in " + config.getUsersDN();
            throw new UserAlreadyExistsException(error);
        }
        catch (UserNotFoundException e1) {}

        addUser(userRequest, config.getUsersDN());
    }

@@ -302,6 +311,25 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
    public void addPendingUser(final UserRequest<T> userRequest)
            throws TransientException, UserAlreadyExistsException
    {
        try
        {
            getUser(userRequest.getUser().getUserID(), config.getUsersDN());
            final String error = userRequest.getUser().getUserID().getName() +
                                 " fount in " + config.getUsersDN();
            throw new UserAlreadyExistsException(error);
        }
        catch (UserNotFoundException e1)
        {
            try
            {
                getUser(userRequest.getUser().getUserID(), config.getUserRequestsDN());
                final String error = userRequest.getUser().getUserID().getName() +
                    " fount in " + config.getUserRequestsDN();
                throw new UserAlreadyExistsException(error);
            }
            catch (UserNotFoundException e2) {}
        }

        addUser(userRequest, config.getUserRequestsDN());
    }

@@ -423,9 +451,6 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
        SearchResultEntry searchResult = null;
        try
        {
//            Filter filter = Filter.createNOTFilter(Filter.createPresenceFilter(LDAP_NSACCOUNTLOCK));
//            filter = Filter.createANDFilter(filter,
//                Filter.createEqualityFilter(searchField, userID.getName()));
            Filter filter = Filter.createEqualityFilter(searchField, userID.getName());
            logger.debug("search filter: " + filter);

@@ -455,7 +480,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
                searchResult.getAttributeValue(
                       userLdapAttrib.get(HttpPrincipal.class))));

        Long numericID = searchResult.getAttributeValueAsLong(
        Integer numericID = searchResult.getAttributeValueAsInteger(
            userLdapAttrib.get(NumericPrincipal.class));
        logger.debug("Numeric id is: " + numericID);
        if (numericID == null)
@@ -515,7 +540,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
            user.getIdentities().add(new HttpPrincipal(
                searchResult.getAttributeValue(LDAP_UID)));
            user.getIdentities().add(new NumericPrincipal(
                searchResult.getAttributeValueAsLong(LDAP_NUMERICID)));
                searchResult.getAttributeValueAsInteger(LDAP_NUMERICID)));
            user.getIdentities().add(new X500Principal(
                searchResult.getAttributeValue(LDAP_DISTINGUISHED_NAME)));
            user.getIdentities().add(new DNPrincipal(