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> | groupsThe set of  Groups defined in this database, keyed by
 group name. | 
| protected String | idThe unique global identifier of this user database. | 
| protected String | pathnameThe relative (to  catalina.base) or absolute pathname to
 the XML file in which we will save our persistent information. | 
| protected String | pathnameNewThe relative or absolute pathname of the file in which we write
 our new information prior to renaming. | 
| protected String | pathnameOldThe relative or absolute pathname to the file in which our old
 information is stored while renaming is in progress. | 
| protected boolean | readonlyA flag, indicating if the user database is read only. | 
| protected HashMap<String,Role> | rolesThe set of  Roles defined in this database, keyed by
 role name. | 
| protected HashMap<String,User> | usersThe 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  Groupdefined in this user database. | 
| Role | createRole(String rolename,
          String description)Create and return a new  Roledefined in this user database. | 
| User | createUser(String username,
          String password,
          String fullName)Create and return a new  Userdefined in this user database. | 
| Group | findGroup(String groupname)Return the  Groupwith the specified group name, if any;
 otherwise returnnull. | 
| Role | findRole(String rolename)Return the  Rolewith the specified role name, if any;
 otherwise returnnull. | 
| User | findUser(String username)Return the  Userwith the specified user name, if any;
 otherwise returnnull. | 
| 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  Groupfrom this user database. | 
| void | removeRole(Role role)Remove the specified  Rolefrom this user database. | 
| void | removeUser(User user)Remove the specified  Userfrom 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 UserDatabaseGroups defined in this user database.public 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 UserDatabaseRoles defined in this user database.public Iterator<User> getUsers()
Users defined in this user database.getUsers in interface UserDatabaseUsers defined in this user database.public 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 returnGroup with the specified group name, if any;
         otherwise return null.public Role findRole(String rolename)
Role with the specified role name, if any;
 otherwise return null.findRole in interface UserDatabaserolename - Name of the role to returnRole with the specified role name, if any; otherwise
         return null.public User findUser(String username)
User with the specified user name, if any;
 otherwise return null.findUser in interface UserDatabaseusername - Name of the user to returnUser with the specified user name, if any; otherwise
         return null.public 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-2020 Apache Software Foundation. All Rights Reserved.