org.apache.james.userrepository
Class UsersFileRepository

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.james.impl.jamesuser.AbstractUsersRepository
          extended by org.apache.james.userrepository.UsersFileRepository
All Implemented Interfaces:
org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.service.Serviceable, UsersRepository, VirtualUserTable, JamesUsersRepository

public class UsersFileRepository
extends AbstractUsersRepository
implements org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.service.Serviceable, org.apache.avalon.framework.activity.Initializable

Implementation of a Repository to store users on the File System. Requires a configuration element in the .conf.xml file of the form: <repository destinationURL="file://path-to-root-dir-for-repository" type="USERS" model="SYNCHRONOUS"/> Requires a logger called UsersRepository.

Version:
CVS $Revision: 521427 $

Field Summary
protected static boolean DEEP_DEBUG
          Whether 'deep debugging' is turned on.
 
Fields inherited from class org.apache.james.impl.jamesuser.AbstractUsersRepository
enableAliases, enableForwarding, ignoreCase
 
Fields inherited from interface org.apache.james.api.user.UsersRepository
ROLE, USER
 
Fields inherited from interface org.apache.james.api.vut.VirtualUserTable
ALIASDOMAIN_PREFIX, ERROR_PREFIX, REGEX_PREFIX, ROLE
 
Constructor Summary
UsersFileRepository()
           
 
Method Summary
 boolean addUser(java.lang.String username, java.lang.String password)
          Adds a user to the repository with the specified password
 void configure(org.apache.avalon.framework.configuration.Configuration configuration)
           
 boolean contains(java.lang.String name)
          Returns whether or not this user is in the repository
 boolean containsCaseInsensitive(java.lang.String name)
          Returns whether or not this user is in the repository.
 int countUsers()
          Returns a count of the users in the repository.
protected  void doAddUser(User user)
          Adds a user to the underlying Repository.
 void doUpdateUser(User user)
          Updates a user record to match the supplied User.
 java.lang.String getRealName(java.lang.String name)
          Returns the user name of the user matching name on an equalsIgnoreCase basis.
 java.lang.String getRealName(java.lang.String name, boolean ignoreCase)
          Return the real name, given the ignoreCase boolean parameter
 User getUserByName(java.lang.String name)
          Get the user object with the specified user name.
 User getUserByNameCaseInsensitive(java.lang.String name)
          Get the user object with the specified user name.
 void initialize()
           
 java.util.Iterator list()
          List users in repository.
 void removeUser(java.lang.String name)
          Removes a user from the repository
 void service(org.apache.avalon.framework.service.ServiceManager componentManager)
           
 void setStore(org.apache.avalon.cornerstone.services.store.Store store)
          Set the Store
 boolean test(java.lang.String name, java.lang.String password)
          Test if user with name 'name' has password 'password'.
 
Methods inherited from class org.apache.james.impl.jamesuser.AbstractUsersRepository
addUser, addUser, getMappings, setEnableAliases, setEnableForwarding, setIgnoreCase, updateUser
 
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
 

Field Detail

DEEP_DEBUG

protected static boolean DEEP_DEBUG
Whether 'deep debugging' is turned on.

Constructor Detail

UsersFileRepository

public UsersFileRepository()
Method Detail

setStore

public void setStore(org.apache.avalon.cornerstone.services.store.Store store)
Set the Store

Parameters:
store - the Store

service

public void service(org.apache.avalon.framework.service.ServiceManager componentManager)
             throws org.apache.avalon.framework.service.ServiceException
Specified by:
service in interface org.apache.avalon.framework.service.Serviceable
Throws:
org.apache.avalon.framework.service.ServiceException
See Also:
Serviceable.service(ServiceManager)

configure

public void configure(org.apache.avalon.framework.configuration.Configuration configuration)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable
Overrides:
configure in class AbstractUsersRepository
Throws:
org.apache.avalon.framework.configuration.ConfigurationException
See Also:
Configurable.configure(Configuration)

initialize

public void initialize()
                throws java.lang.Exception
Specified by:
initialize in interface org.apache.avalon.framework.activity.Initializable
Throws:
java.lang.Exception
See Also:
Initializable.initialize()

list

public java.util.Iterator list()
Description copied from interface: UsersRepository
List users in repository.

Specified by:
list in interface UsersRepository
Returns:
Iterator over a collection of Strings, each being one user in the repository.
See Also:
UsersRepository.list()

doAddUser

protected void doAddUser(User user)
Description copied from class: AbstractUsersRepository
Adds a user to the underlying Repository. The user name must not clash with an existing user.

Specified by:
doAddUser in class AbstractUsersRepository
Parameters:
user - the user to add
See Also:
AbstractUsersRepository.doAddUser(org.apache.james.api.user.User)

addUser

public boolean addUser(java.lang.String username,
                       java.lang.String password)
Description copied from interface: UsersRepository
Adds a user to the repository with the specified password

Specified by:
addUser in interface UsersRepository
Parameters:
username - the username of the user to be added
password - the password of the user to add
Returns:
true if succesful, false otherwise
See Also:
UsersRepository.addUser(java.lang.String, java.lang.String)

getUserByName

public User getUserByName(java.lang.String name)
Description copied from interface: UsersRepository
Get the user object with the specified user name. Return null if no such user.

Specified by:
getUserByName in interface UsersRepository
Parameters:
name - the name of the user to retrieve
Returns:
the user being retrieved, null if the user doesn't exist
See Also:
UsersRepository.getUserByName(java.lang.String)

getUserByNameCaseInsensitive

public User getUserByNameCaseInsensitive(java.lang.String name)
Description copied from interface: UsersRepository
Get the user object with the specified user name. Match user naems on a case insensitive basis. Return null if no such user.

Specified by:
getUserByNameCaseInsensitive in interface UsersRepository
Parameters:
name - the name of the user to retrieve
Returns:
the user being retrieved, null if the user doesn't exist
See Also:
UsersRepository.getUserByNameCaseInsensitive(java.lang.String)

getRealName

public java.lang.String getRealName(java.lang.String name,
                                    boolean ignoreCase)
Return the real name, given the ignoreCase boolean parameter


getRealName

public java.lang.String getRealName(java.lang.String name)
Description copied from interface: UsersRepository
Returns the user name of the user matching name on an equalsIgnoreCase basis. Returns null if no match.

Specified by:
getRealName in interface UsersRepository
Parameters:
name - the name to case-correct
Returns:
the case-correct name of the user, null if the user doesn't exist
See Also:
UsersRepository.getRealName(java.lang.String)

doUpdateUser

public void doUpdateUser(User user)
Description copied from class: AbstractUsersRepository
Updates a user record to match the supplied User.

Specified by:
doUpdateUser in class AbstractUsersRepository
Parameters:
user - the user to update
See Also:
AbstractUsersRepository.doUpdateUser(org.apache.james.api.user.User)

removeUser

public void removeUser(java.lang.String name)
Description copied from interface: UsersRepository
Removes a user from the repository

Specified by:
removeUser in interface UsersRepository
Parameters:
name - the user to remove from the repository
See Also:
UsersRepository.removeUser(java.lang.String)

contains

public boolean contains(java.lang.String name)
Description copied from interface: UsersRepository
Returns whether or not this user is in the repository

Specified by:
contains in interface UsersRepository
Parameters:
name - the name to check in the repository
Returns:
whether the user is in the repository
See Also:
UsersRepository.contains(java.lang.String)

containsCaseInsensitive

public boolean containsCaseInsensitive(java.lang.String name)
Description copied from interface: UsersRepository
Returns whether or not this user is in the repository. Names are matched on a case insensitive basis.

Specified by:
containsCaseInsensitive in interface UsersRepository
Parameters:
name - the name to check in the repository
Returns:
whether the user is in the repository
See Also:
UsersRepository.containsCaseInsensitive(java.lang.String)

test

public boolean test(java.lang.String name,
                    java.lang.String password)
Description copied from interface: UsersRepository
Test if user with name 'name' has password 'password'.

Specified by:
test in interface UsersRepository
Parameters:
name - the name of the user to be tested
password - the password to be tested
Returns:
true if the test is successful, false if the user doesn't exist or if the password is incorrect
See Also:
UsersRepository.test(java.lang.String, java.lang.String)

countUsers

public int countUsers()
Description copied from interface: UsersRepository
Returns a count of the users in the repository.

Specified by:
countUsers in interface UsersRepository
Returns:
the number of users in the repository
See Also:
UsersRepository.countUsers()


Copyright ? 2002-2009 The Apache Software Foundation. All Rights Reserved.