org.apache.ftpserver.usermanager
Class LdapUserManager

java.lang.Object
  extended byorg.apache.avalon.framework.logger.AbstractLogEnabled
      extended byorg.apache.ftpserver.usermanager.AbstractUserManager
          extended byorg.apache.ftpserver.usermanager.LdapUserManager
All Implemented Interfaces:
org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.context.Contextualizable, org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.logger.LogEnabled, UserManagerInterface

public class LdapUserManager
extends AbstractUserManager

Ldap based user manager class. Tested using Netscape Directory Server 4.1. The LDAP requires the password to be nonempty for simple authentication. So instead of using empty string password (""), we will be using single space (" ").
The required LDAP attribute types:

Some of the above mentioned attribute types are created by ftd-db.ldif schema file. The schema file also creates an object class called ftpUsers derived from inetOrgPerson and have all these attributes.
Assumed LDAP objectclass hierarchy:
        top
         |
       person
         |
 organizationalPerson
         |
    inetOrgPerson
         |
      ftpUsers
 

Author:
Rana Bhattacharyya

Field Summary
 
Fields inherited from class org.apache.ftpserver.usermanager.AbstractUserManager
mConfig, mstAdminName
 
Fields inherited from interface org.apache.ftpserver.usermanager.UserManagerInterface
ROLE
 
Constructor Summary
LdapUserManager()
          Default constructor
 
Method Summary
 boolean authenticate(java.lang.String login, java.lang.String password)
          User authentication.
 void configure(org.apache.avalon.framework.configuration.Configuration conf)
          Instantiate UserManager implementation.
 void delete(java.lang.String userName)
          Delete user
 void dispose()
          Close user manager
 boolean doesExist(java.lang.String name)
          User existance check
 java.util.List getAllUserNames()
          Get all user names.
 User getUserByName(java.lang.String name)
          Get user object.
 void save(User user)
          Save user
 
Methods inherited from class org.apache.ftpserver.usermanager.AbstractUserManager
contextualize, getAdminName, getBaseDirectory, getConfig, initialize, reload
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LdapUserManager

public LdapUserManager()
Default constructor

Method Detail

configure

public void configure(org.apache.avalon.framework.configuration.Configuration conf)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Instantiate UserManager implementation. Open LDAP connection.

Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable
Overrides:
configure in class AbstractUserManager
Throws:
org.apache.avalon.framework.configuration.ConfigurationException

getAllUserNames

public java.util.List getAllUserNames()
Get all user names.


getUserByName

public User getUserByName(java.lang.String name)
Get user object.


authenticate

public boolean authenticate(java.lang.String login,
                            java.lang.String password)
User authentication.


save

public void save(User user)
          throws javax.naming.NamingException
Save user

Throws:
javax.naming.NamingException

doesExist

public boolean doesExist(java.lang.String name)
User existance check

Parameters:
name - user name

delete

public void delete(java.lang.String userName)
            throws javax.naming.NamingException
Delete user

Throws:
javax.naming.NamingException

dispose

public void dispose()
Close user manager

Specified by:
dispose in interface org.apache.avalon.framework.activity.Disposable
Overrides:
dispose in class AbstractUserManager


Copyright © -2005 . All Rights Reserved.