org.apache.turbine.services.security
Interface UserManager

All Known Implementing Classes:
LDAPUserManager, PassiveUserManager, TorqueUserManager

public interface UserManager

An UserManager performs User objects related tasks on behalf of the BaseSecurityService. The responsibilities of this class include loading data of an user from the storage and putting them into the User objects, saving those data to the permanent storage, and authenticating users.

Version:
$Id: UserManager.java 534527 2007-05-02 16:10:59Z tv $
Author:
Rafal Krzewski, Henning P. Schmiedehausen

Method Summary
 boolean accountExists(java.lang.String userName)
          Check whether a specified user's account exists.
 boolean accountExists(User user)
          Check whether a specified user's account exists.
 void authenticate(User user, java.lang.String password)
          Authenticate an User with the specified password.
 void changePassword(User user, java.lang.String oldPassword, java.lang.String newPassword)
          Change the password for an User.
 void createAccount(User user, java.lang.String initialPassword)
          Creates new user account with specified attributes.
 void forcePassword(User user, java.lang.String password)
          Forcibly sets new password for an User.
 void init(org.apache.commons.configuration.Configuration conf)
          Initializes the UserManager
 void removeAccount(User user)
          Removes an user account from the system.
 User[] retrieve(org.apache.torque.util.Criteria criteria)
          Deprecated. Use retrieveList(Criteria crit)
 User retrieve(java.lang.String username)
          Retrieve a user from persistent storage using username as the key.
 User retrieve(java.lang.String username, java.lang.String password)
          Retrieve a user from persistent storage using username as the key, and authenticate the user.
 User retrieveById(java.lang.Object key)
          Retrieve a user from persistent storage using the primary key
 java.util.List retrieveList(org.apache.torque.util.Criteria criteria)
          Retrieve a list of users that meet the specified criteria.
 void saveOnSessionUnbind(User user)
          Saves User data when the session is unbound.
 void store(User user)
          Save an User object to persistent storage.
 

Method Detail

init

public void init(org.apache.commons.configuration.Configuration conf)
          throws InitializationException
Initializes the UserManager

Parameters:
conf - A Configuration object to init this Manager
Throws:
InitializationException - When something went wrong.

accountExists

public boolean accountExists(User user)
                      throws DataBackendException
Check whether a specified user's account exists. The login name is used for looking up the account.

Parameters:
user - The user to be checked.
Returns:
true if the specified account exists
Throws:
DataBackendException - if there was an error accessing the data backend.

accountExists

public boolean accountExists(java.lang.String userName)
                      throws DataBackendException
Check whether a specified user's account exists. The login name is used for looking up the account.

Parameters:
userName - The name of the user to be checked.
Returns:
true if the specified account exists
Throws:
DataBackendException - if there was an error accessing the data backend.

retrieve

public User retrieve(java.lang.String username)
              throws UnknownEntityException,
                     DataBackendException
Retrieve a user from persistent storage using username as the key.

Parameters:
username - the name of the user.
Returns:
an User object.
Throws:
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

retrieveById

public User retrieveById(java.lang.Object key)
                  throws UnknownEntityException,
                         DataBackendException
Retrieve a user from persistent storage using the primary key

Parameters:
key - The primary key object
Returns:
an User object.
Throws:
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

retrieve

public User[] retrieve(org.apache.torque.util.Criteria criteria)
                throws DataBackendException
Deprecated. Use retrieveList(Criteria crit)

Retrieve a set of users that meet the specified criteria. As the keys for the criteria, you should use the constants that are defined in User interface, plus the names of the custom attributes you added to your user representation in the data storage. Use verbatim names of the attributes - without table name prefix in case of DB implementation.

Parameters:
criteria - The criteria of selection.
Returns:
a List of users meeting the criteria.
Throws:
DataBackendException - if there is a problem accessing the storage.

retrieveList

public java.util.List retrieveList(org.apache.torque.util.Criteria criteria)
                            throws DataBackendException
Retrieve a list of users that meet the specified criteria. As the keys for the criteria, you should use the constants that are defined in User interface, plus the names of the custom attributes you added to your user representation in the data storage. Use verbatim names of the attributes - without table name prefix in case of DB implementation.

Parameters:
criteria - The criteria of selection.
Returns:
a List of users meeting the criteria.
Throws:
DataBackendException - if there is a problem accessing the storage.

retrieve

public User retrieve(java.lang.String username,
                     java.lang.String password)
              throws PasswordMismatchException,
                     UnknownEntityException,
                     DataBackendException
Retrieve a user from persistent storage using username as the key, and authenticate the user. The implementation may chose to authenticate to the server as the user whose data is being retrieved.

Parameters:
username - the name of the user.
password - the user supplied password.
Returns:
an User object.
Throws:
PasswordMismatchException - if the supplied password was incorrect.
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

store

public void store(User user)
           throws UnknownEntityException,
                  DataBackendException
Save an User object to persistent storage. User's record is required to exist in the storage.

Parameters:
user - an User object to store.
Throws:
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

saveOnSessionUnbind

public void saveOnSessionUnbind(User user)
                         throws UnknownEntityException,
                                DataBackendException
Saves User data when the session is unbound. The user account is required to exist in the storage. LastLogin, AccessCounter, persistent pull tools, and any data stored in the permData hashtable that is not mapped to a column will be saved.

Throws:
UnknownEntityException - if the user's account does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

authenticate

public void authenticate(User user,
                         java.lang.String password)
                  throws PasswordMismatchException,
                         UnknownEntityException,
                         DataBackendException
Authenticate an User with the specified password. If authentication is successful the method returns nothing. If there are any problems, exception was thrown.

Parameters:
user - an User object to authenticate.
password - the user supplied password.
Throws:
PasswordMismatchException - if the supplied password was incorrect.
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

createAccount

public void createAccount(User user,
                          java.lang.String initialPassword)
                   throws EntityExistsException,
                          DataBackendException
Creates new user account with specified attributes.

Parameters:
user - the object describing account to be created.
initialPassword - password for the new user
Throws:
DataBackendException - if there was an error accessing the data backend.
EntityExistsException - if the user account already exists.

removeAccount

public void removeAccount(User user)
                   throws UnknownEntityException,
                          DataBackendException
Removes an user account from the system.

Parameters:
user - the object describing the account to be removed.
Throws:
DataBackendException - if there was an error accessing the data backend.
UnknownEntityException - if the user account is not present.

changePassword

public void changePassword(User user,
                           java.lang.String oldPassword,
                           java.lang.String newPassword)
                    throws PasswordMismatchException,
                           UnknownEntityException,
                           DataBackendException
Change the password for an User.

Parameters:
user - an User to change password for.
oldPassword - the current password suplied by the user.
newPassword - the current password requested by the user.
Throws:
PasswordMismatchException - if the supplied password was incorrect.
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.

forcePassword

public void forcePassword(User user,
                          java.lang.String password)
                   throws UnknownEntityException,
                          DataBackendException
Forcibly sets new password for an User. This is supposed by the administrator to change the forgotten or compromised passwords. Certain implementatations of this feature would require administrative level access to the authenticating server / program.

Parameters:
user - an User to change password for.
password - the new password.
Throws:
UnknownEntityException - if the user's record does not exist in the database.
DataBackendException - if there is a problem accessing the storage.


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.