Package org.apache.catalina.users
Class MemoryUserDatabase
java.lang.Object
org.apache.catalina.users.MemoryUserDatabase
- All Implemented Interfaces:
- UserDatabase
Concrete implementation of 
UserDatabase that loads all defined users,
 groups, and roles into an in-memory data structure, and uses a specified XML
 file for its persistent storage.
 This class is thread-safe.
This class does not enforce what, in an RDBMS, would be called referential integrity. Concurrent modifications may result in inconsistent data such as a User retaining a reference to a Role that has been removed from the database.
- Since:
- 4.1
- Author:
- Craig R. McClanahan
- 
Field SummaryFieldsModifier and TypeFieldDescriptionThe set ofGroups defined in this database, keyed by group name.protected final StringThe unique global identifier of this user database.protected StringThe relative (tocatalina.base) or absolute pathname to the XML file in which we will save our persistent information.protected StringThe relative or absolute pathname of the file in which we write our new information prior to renaming.protected StringThe relative or absolute pathname to the file in which our old information is stored while renaming is in progress.protected booleanA flag, indicating if the user database is read only.The set ofRoles defined in this database, keyed by role name.The set ofUsers defined in this database, keyed by user name.
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a new instance with default values.Create a new instance with the specified values.
- 
Method SummaryModifier and TypeMethodDescriptionvoidPerform any background processing (e.g. checking for changes in persisted storage) required for the user database.voidclose()Finalize access to this user database.createGroup(String groupname, String description) Create and return a newGroupdefined in this user database.createRole(String rolename, String description) Create and return a newRoledefined in this user database.createUser(String username, String password, String fullName) Create and return a newUserdefined in this user database.Return theGroupwith the specified group name, if any; otherwise returnnull.Return theRolewith the specified role name, if any; otherwise returnnull.Return theUserwith the specified user name, if any; otherwise returnnull.getId()booleangetRoles()getUsers()booleanbooleanCheck for permissions to save this user database to persistent storage location.voidopen()Initialize access to this user database.voidremoveGroup(Group group) Remove the specifiedGroupfrom this user database.voidremoveRole(Role role) Remove the specifiedRolefrom this user database.voidremoveUser(User user) Remove the specifiedUserfrom this user database.voidsave()Save any updated information to the persistent storage location for this user database.voidsetPathname(String pathname) Set the relative or absolute pathname to the persistent storage file.voidsetReadonly(boolean readonly) Setting the readonly status of the user databasevoidsetWatchSource(boolean watchSource) toString()Return a String representation of this UserDatabase.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.catalina.UserDatabaseisAvailable, isSparse, modifiedGroup, modifiedRole, modifiedUser
- 
Field Details- 
groupsThe set ofGroups defined in this database, keyed by group name.
- 
idThe unique global identifier of this user database.
- 
pathnameThe relative (tocatalina.base) or absolute pathname to the XML file in which we will save our persistent information.
- 
pathnameOldThe relative or absolute pathname to the file in which our old information is stored while renaming is in progress.
- 
pathnameNewThe relative or absolute pathname of the file in which we write our new information prior to renaming.
- 
readonlyprotected boolean readonlyA flag, indicating if the user database is read only.
- 
rolesThe set ofRoles defined in this database, keyed by role name.
- 
usersThe set ofUsers defined in this database, keyed by user name.
 
- 
- 
Constructor Details- 
MemoryUserDatabasepublic MemoryUserDatabase()Create a new instance with default values.
- 
MemoryUserDatabaseCreate a new instance with the specified values.- Parameters:
- id- Unique global identifier of this user database
 
 
- 
- 
Method Details- 
getGroups- Specified by:
- getGroupsin interface- UserDatabase
- Returns:
- the set of Groups defined in this user database.
 
- 
getId- Specified by:
- getIdin interface- UserDatabase
- Returns:
- the unique global identifier of this user database.
 
- 
getPathname- Returns:
- the relative or absolute pathname to the persistent storage file.
 
- 
setPathnameSet the relative or absolute pathname to the persistent storage file.- Parameters:
- pathname- The new pathname
 
- 
getReadonlypublic boolean getReadonly()- Returns:
- the readonly status of the user database
 
- 
setReadonlypublic void setReadonly(boolean readonly) Setting the readonly status of the user database- Parameters:
- readonly- the new status
 
- 
getWatchSourcepublic boolean getWatchSource()
- 
setWatchSourcepublic void setWatchSource(boolean watchSource) 
- 
getRoles- Specified by:
- getRolesin interface- UserDatabase
- Returns:
- the set of Roles defined in this user database.
 
- 
getUsers- Specified by:
- getUsersin interface- UserDatabase
- Returns:
- the set of Users defined in this user database.
 
- 
closeFinalize access to this user database.- Specified by:
- closein interface- UserDatabase
- Throws:
- Exception- if any exception is thrown during closing
 
- 
createGroupCreate and return a newGroupdefined in this user database.- Specified by:
- createGroupin interface- UserDatabase
- Parameters:
- groupname- The group name of the new group (must be unique)
- description- The description of this group
- Returns:
- The new group
 
- 
createRoleCreate and return a newRoledefined in this user database.- Specified by:
- createRolein interface- UserDatabase
- Parameters:
- rolename- The role name of the new group (must be unique)
- description- The description of this group
- Returns:
- The new role
 
- 
createUserCreate and return a newUserdefined in this user database.- Specified by:
- createUserin interface- UserDatabase
- Parameters:
- username- The logon username of the new user (must be unique)
- password- The logon password of the new user
- fullName- The full name of the new user
- Returns:
- The new user
 
- 
findGroupReturn theGroupwith the specified group name, if any; otherwise returnnull.- Specified by:
- findGroupin interface- UserDatabase
- Parameters:
- groupname- Name of the group to return
- Returns:
- the Groupwith the specified group name, if any; otherwise returnnull.
 
- 
findRoleReturn theRolewith the specified role name, if any; otherwise returnnull.- Specified by:
- findRolein interface- UserDatabase
- Parameters:
- rolename- Name of the role to return
- Returns:
- the Rolewith the specified role name, if any; otherwise returnnull.
 
- 
findUserReturn theUserwith the specified user name, if any; otherwise returnnull.- Specified by:
- findUserin interface- UserDatabase
- Parameters:
- username- Name of the user to return
- Returns:
- the Userwith the specified user name, if any; otherwise returnnull.
 
- 
openInitialize access to this user database.- Specified by:
- openin interface- UserDatabase
- Throws:
- Exception- if any exception is thrown during opening
 
- 
removeGroupRemove the specifiedGroupfrom this user database.- Specified by:
- removeGroupin interface- UserDatabase
- Parameters:
- group- The group to be removed
 
- 
removeRoleRemove the specifiedRolefrom this user database.- Specified by:
- removeRolein interface- UserDatabase
- Parameters:
- role- The role to be removed
 
- 
removeUserRemove the specifiedUserfrom this user database.- Specified by:
- removeUserin interface- UserDatabase
- Parameters:
- user- The user to be removed
 
- 
isWritablepublic boolean isWritable()Check for permissions to save this user database to persistent storage location.- Returns:
- trueif the database is writable
 
- 
saveSave any updated information to the persistent storage location for this user database.- Specified by:
- savein interface- UserDatabase
- Throws:
- Exception- if any exception is thrown during saving
 
- 
backgroundProcesspublic void backgroundProcess()Description copied from interface:UserDatabasePerform any background processing (e.g. checking for changes in persisted storage) required for the user database.- Specified by:
- backgroundProcessin interface- UserDatabase
 
- 
toStringReturn a String representation of this UserDatabase.
 
-