Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.codehaus.plexus.redback.users.ldap;
  /*
   * Copyright 2001-2007 The Codehaus.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 
 import java.util.List;
 
 

Author(s):
jesse
Version:
"$Id: LdapUserManager.java 1374 2011-08-26 06:40:23Z oching $"
 
 @Service("userManager#ldap")
 public class LdapUserManager
     extends AbstractUserManager
 {
     @Inject
     @Named(value = "ldapConnectionFactory#configurable")
 
     @Inject
     private LdapController controller;
 
     @Inject
     @Named(value = "userMapper#ldap")
     private UserMapper mapper;
 
     @Inject
 
     private User guestUser;
 
     public boolean isReadOnly()
     {
         return true;
     }
 
     public User addUserUser user )
     {
         return addUserusertrue );
     }
 
     public void addUserUncheckedUser user )
     {
         addUseruserfalse );
     }
 
     private User addUserUser userboolean checked )
     {
         if ( user == null )
         {
             return null;
         }
 
         if ( .equalsuser.getUsername() ) )
         {
              = user;
             return ;
         }
 
         LdapConnection ldapConnection = getLdapConnection();
         try
         {
             DirContext context = ldapConnection.getDirContext();
             .createUserusercontextchecked );
         }
        catch ( LdapControllerException e )
        {
            .error"Error mapping user: " + user.getPrincipal() + " to LDAP attributes."e );
        }
        catch ( MappingException e )
        {
            .error"Error mapping user: " + user.getPrincipal() + " to LDAP attributes."e );
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
        return user;
    }
    public User createUserString usernameString fullNameString emailAddress )
    {
        return .newUserInstanceusernamefullNameemailAddress );
    }
    public UserQuery createUserQuery()
    {
        return new LdapUserQuery();
    }
    public void deleteUserObject principal )
        throws UserNotFoundException
    {
        ifprincipal != null )
        {
            clearFromCacheprincipal.toString() );
        }
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            .removeUserprincipalcontext );
        }
        catch ( LdapControllerException e )
        {
            .error"Failed to delete user: {}"principale );
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
    }
    public void deleteUserString username )
        throws UserNotFoundException
    {
        ifusername != null )
        {
            clearFromCacheusername );
        }
        
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            .removeUserusernamecontext );
        }
        catch ( LdapControllerException e )
        {
            .error"Failed to delete user: " + usernamee );
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
    }
    public void eraseDatabase()
    {
        // TODO Implement erase!
    }
    public User findUserString username )
        throws UserNotFoundException
    {
        if ( username == null )
        {
            throw new UserNotFoundException"Unable to find user based on null username." );
        }
        if ( .equalsusername ) )
        {
            return getGuestUser();
        }
        // REDBACK-289/MRM-1488
        // look for the user in the cache first
        LdapUser ldapUser = .getUserusername );
        ifldapUser != null )
        {
            .debug"User {} found in cache."username );
            return ldapUser;
        }
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            User user = .getUserusernamecontext );
            if ( user == null )
            {
                throw new UserNotFoundException"user with name " + username + " not found " );
            }
            // REDBACK-289/MRM-1488
            .debug"Adding user {} to cache.."username );
            .addUser( (LdapUseruser );
            return user;
        }
        catch ( LdapControllerException e )
        {
            .error"Failed to find user: {}"usernamee );
            return null;
        }
        catch ( MappingException e )
        {
            .error"Failed to map user: {}"usernamee );
            return null;
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
    }
    public User getGuestUser()
        throws UserNotFoundException
    {
        if (  == null )
        {
            throw new UserNotFoundException"Guest user doesn't exist." );
        }
        return ;
    }
    public User findUserObject principal )
        throws UserNotFoundException
    {
        if ( principal == null )
        {
            throw new UserNotFoundException"Unable to find user based on null principal." );
        }
        if ( .equalsprincipal.toString() ) )
        {
            return getGuestUser();
        }
        // REDBACK-289/MRM-1488
        // look for the user in the cache first
        LdapUser ldapUser = .getUserprincipal.toString() );
        ifldapUser != null )
        {
            .debug"User {} found in cache."principal );
            return ldapUser;
        }
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            User user = .getUserprincipalcontext );
            // REDBACK-289/MRM-1488
            .debug"Adding user {} to cache.."principal );
            
            .addUser( (LdapUseruser );
            
            return user;
        }
        catch ( LdapControllerException e )
        {
            .error"Failed to find user: {}"principale );
            return null;
        }
        catch ( MappingException e )
        {
            .error"Failed to map user: {}"principale );
            return null;
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
    }
    public List<UserfindUsersByEmailKeyString emailKeyboolean orderAscending )
    {
        LdapUserQuery query = new LdapUserQuery();
        query.setEmailemailKey );
        query.setOrderBy. );
        query.setAscendingorderAscending );
        return findUsersByQueryquery );
    }
    public List<UserfindUsersByFullNameKeyString fullNameKeyboolean orderAscending )
    {
        LdapUserQuery query = new LdapUserQuery();
        query.setFullNamefullNameKey );
        query.setOrderBy. );
        query.setAscendingorderAscending );
        return findUsersByQueryquery );
    }
    public List<UserfindUsersByQueryUserQuery query )
    {
        if ( query == null )
        {
            return Collections.emptyList();
        }
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            return .getUsersByQuery( ( LdapUserQuery ) querycontext );
        }
        catch ( LdapControllerException e )
        {
            .error"Failed to find user"e );
            return null;
        }
        catch ( MappingException e )
        {
            .error"Failed to map user"e );
            return null;
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
    }

    
    public List<UserfindUsersByUsernameKeyString usernameKeyboolean orderAscending )
    {
        LdapUserQuery query = new LdapUserQuery();
        query.setUsernameusernameKey );
        query.setOrderBy. );
        query.setAscendingorderAscending );
        return findUsersByQueryquery );
    }
    public String getId()
    {
        return "LDAP User-Manager: " + getClass().getName();
    }

    
    public List<UsergetUsers()
    {
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            List<Userusers = new ArrayList<User>();
            users.addAll.getUserscontext ) );
            //We add the guest user because it isn't in LDAP
            try
            {
                User u = getGuestUser();
                if ( u != null )
                {
                    users.addu );
                }
            }
            catch ( UserNotFoundException e )
            {
                //Nothing to do
            }
            return users;
        }
        catch ( Exception e )
        {
            .errore.getMessage(), e );
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
        return Collections.emptyList();
    }
    public List<UsergetUsersboolean orderAscending )
    {
        return getUsers();
    }
    public User updateUserUser user )
        throws UserNotFoundException
    {
        return updateUseruserfalse );
    }
    public User updateUserUser userboolean passwordChangeRequired )
        throws UserNotFoundException
    {
        ifuser != null )
        {
            clearFromCacheuser.getUsername() );
        }
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            .updateUserusercontext );
        }
        catch ( LdapControllerException e )
        {
            .error"Failed to update user: " + user.getPrincipal(), e );
        }
        catch ( MappingException e )
        {
            .error"Failed to update user: " + user.getPrincipal(), e );
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
        return user;
    }
    public boolean userExistsObject principal )
    {
        ifprincipal == null )
        {
            return false;
        }
        // REDBACK-289/MRM-1488
        // look for the user in the cache first
        LdapUser ldapUser = .getUserprincipal.toString() );
        ifldapUser != null )
        {
            .debug"User {} found in cache."principal );
            return true;
        }
        LdapConnection ldapConnection = getLdapConnection();
        try
        {
            DirContext context = ldapConnection.getDirContext();
            return .userExistsprincipalcontext );
        }
        catch ( LdapControllerException e )
        {
            .warn"Failed to search for user: " + principale );
            return false;
        }
        finally
        {
            closeLdapConnectionldapConnection );
        }
    }
    {
        try
        {
            return .getConnection();
        }
        catch ( LdapException e )
        {
            .warn"failed to get a ldap connection " + e.getMessage(), e );
            throw new RuntimeException"failed to get a ldap connection " + e.getMessage(), e );
        }
    }
    private void closeLdapConnectionLdapConnection ldapConnection )
    {
        if ( ldapConnection != null )
        {
            ldapConnection.close();
        }
    }
    // REDBACK-289/MRM-1488
    private void clearFromCacheString username )
    {
        .debug"Removing user {} from cache.."username );
        .removeUserusername );
        .debug"Removing userDn for user {} from cache.."username );
        .removeLdapUserDnusername );
    }
    
New to GrepCode? Check out our FAQ X