public class MemoryUserDatabase extends Object implements 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.
| Modifier and Type | Field and Description |
|---|---|
protected HashMap<String,Group> |
groups
The set of
Groups defined in this database, keyed by
group name. |
protected String |
id
The unique global identifier of this user database.
|
protected String |
pathname
The relative (to
catalina.base) or absolute pathname to
the XML file in which we will save our persistent information. |
protected String |
pathnameNew
The relative or absolute pathname of the file in which we write
our new information prior to renaming.
|
protected String |
pathnameOld
The relative or absolute pathname to the file in which our old
information is stored while renaming is in progress.
|
protected boolean |
readonly
A flag, indicating if the user database is read only.
|
protected HashMap<String,Role> |
roles
The set of
Roles defined in this database, keyed by
role name. |
protected HashMap<String,User> |
users
The set of
Users defined in this database, keyed by
user name. |
| Constructor and Description |
|---|
MemoryUserDatabase()
Create a new instance with default values.
|
MemoryUserDatabase(String id)
Create a new instance with the specified values.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Finalize access to this user database.
|
Group |
createGroup(String groupname,
String description)
Create and return a new
Group defined in this user database. |
Role |
createRole(String rolename,
String description)
Create and return a new
Role defined in this user database. |
User |
createUser(String username,
String password,
String fullName)
Create and return a new
User defined in this user database. |
Group |
findGroup(String groupname)
Return the
Group with the specified group name, if any;
otherwise return null. |
Role |
findRole(String rolename)
Return the
Role with the specified role name, if any;
otherwise return null. |
User |
findUser(String username)
Return the
User with the specified user name, if any;
otherwise return null. |
Iterator<Group> |
getGroups()
Return the set of
Groups defined in this user database. |
String |
getId()
Return the unique global identifier of this user database.
|
String |
getPathname()
Return the relative or absolute pathname to the persistent storage file.
|
boolean |
getReadonly()
Returning the readonly status of the user database
|
Iterator<Role> |
getRoles()
Return the set of
Roles defined in this user database. |
Iterator<User> |
getUsers()
Return the set of
Users defined in this user database. |
boolean |
isWriteable()
Check for permissions to save this user database
to persistent storage location
|
void |
open()
Initialize access to this user database.
|
void |
removeGroup(Group group)
Remove the specified
Group from this user database. |
void |
removeRole(Role role)
Remove the specified
Role from this user database. |
void |
removeUser(User user)
Remove the specified
User from this user database. |
void |
save()
Save any updated information to the persistent storage location for
this user database.
|
void |
setPathname(String pathname)
Set the relative or absolute pathname to the persistent storage file.
|
void |
setReadonly(boolean readonly)
Setting the readonly status of the user database
|
String |
toString()
Return a String representation of this UserDatabase.
|
protected final HashMap<String,Group> groups
Groups defined in this database, keyed by
group name.protected final String id
protected String pathname
catalina.base) or absolute pathname to
the XML file in which we will save our persistent information.protected String pathnameOld
protected String pathnameNew
protected boolean readonly
protected final HashMap<String,Role> roles
Roles defined in this database, keyed by
role name.public MemoryUserDatabase()
public MemoryUserDatabase(String id)
id - Unique global identifier of this user databasepublic Iterator<Group> getGroups()
Groups defined in this user database.getGroups in interface UserDatabasepublic String getId()
getId in interface UserDatabasepublic String getPathname()
public void setPathname(String pathname)
pathname - The new pathnamepublic boolean getReadonly()
public void setReadonly(boolean readonly)
readonly - the new statuspublic Iterator<Role> getRoles()
Roles defined in this user database.getRoles in interface UserDatabasepublic Iterator<User> getUsers()
Users defined in this user database.getUsers in interface UserDatabasepublic void close()
throws Exception
close in interface UserDatabaseException - if any exception is thrown during closingpublic Group createGroup(String groupname, String description)
Group defined in this user database.createGroup in interface UserDatabasegroupname - The group name of the new group (must be unique)description - The description of this grouppublic Role createRole(String rolename, String description)
Role defined in this user database.createRole in interface UserDatabaserolename - The role name of the new group (must be unique)description - The description of this grouppublic User createUser(String username, String password, String fullName)
User defined in this user database.createUser in interface UserDatabaseusername - The logon username of the new user (must be unique)password - The logon password of the new userfullName - The full name of the new userpublic Group findGroup(String groupname)
Group with the specified group name, if any;
otherwise return null.findGroup in interface UserDatabasegroupname - Name of the group to returnpublic Role findRole(String rolename)
Role with the specified role name, if any;
otherwise return null.findRole in interface UserDatabaserolename - Name of the role to returnpublic User findUser(String username)
User with the specified user name, if any;
otherwise return null.findUser in interface UserDatabaseusername - Name of the user to returnpublic void open()
throws Exception
open in interface UserDatabaseException - if any exception is thrown during openingpublic void removeGroup(Group group)
Group from this user database.removeGroup in interface UserDatabasegroup - The group to be removedpublic void removeRole(Role role)
Role from this user database.removeRole in interface UserDatabaserole - The role to be removedpublic void removeUser(User user)
User from this user database.removeUser in interface UserDatabaseuser - The user to be removedpublic boolean isWriteable()
public void save()
throws Exception
save in interface UserDatabaseException - if any exception is thrown during savingCopyright © 2000-2016 Apache Software Foundation. All Rights Reserved.