public class MemoryUserDatabase extends java.lang.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 java.util.HashMap<java.lang.String,Group> |
groups
The set of
Group s defined in this database, keyed by
group name. |
protected java.lang.String |
id
The unique global identifier of this user database.
|
protected java.lang.String |
pathname
The relative (to
catalina.base ) or absolute pathname to
the XML file in which we will save our persistent information. |
protected java.lang.String |
pathnameNew
The relative or absolute pathname of the file in which we write
our new information prior to renaming.
|
protected java.lang.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 java.util.HashMap<java.lang.String,Role> |
roles
The set of
Role s defined in this database, keyed by
role name. |
protected java.util.HashMap<java.lang.String,User> |
users
The set of
User s defined in this database, keyed by
user name. |
Constructor and Description |
---|
MemoryUserDatabase()
Create a new instance with default values.
|
MemoryUserDatabase(java.lang.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(java.lang.String groupname,
java.lang.String description)
Create and return a new
Group defined in this user database. |
Role |
createRole(java.lang.String rolename,
java.lang.String description)
Create and return a new
Role defined in this user database. |
User |
createUser(java.lang.String username,
java.lang.String password,
java.lang.String fullName)
Create and return a new
User defined in this user database. |
Group |
findGroup(java.lang.String groupname)
Return the
Group with the specified group name, if any;
otherwise return null . |
Role |
findRole(java.lang.String rolename)
Return the
Role with the specified role name, if any;
otherwise return null . |
User |
findUser(java.lang.String username)
Return the
User with the specified user name, if any;
otherwise return null . |
java.util.Iterator<Group> |
getGroups()
Return the set of
Group s defined in this user database. |
java.lang.String |
getId()
Return the unique global identifier of this user database.
|
java.lang.String |
getPathname()
Return the relative or absolute pathname to the persistent storage file.
|
boolean |
getReadonly()
Returning the readonly status of the user database
|
java.util.Iterator<Role> |
getRoles()
Return the set of
Role s defined in this user database. |
java.util.Iterator<User> |
getUsers()
Return the set of
User s 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(java.lang.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
|
java.lang.String |
toString()
Return a String representation of this UserDatabase.
|
protected final java.util.HashMap<java.lang.String,Group> groups
Group
s defined in this database, keyed by
group name.protected final java.lang.String id
protected java.lang.String pathname
catalina.base
) or absolute pathname to
the XML file in which we will save our persistent information.protected java.lang.String pathnameOld
protected java.lang.String pathnameNew
protected boolean readonly
protected final java.util.HashMap<java.lang.String,Role> roles
Role
s defined in this database, keyed by
role name.public MemoryUserDatabase()
public MemoryUserDatabase(java.lang.String id)
id
- Unique global identifier of this user databasepublic java.util.Iterator<Group> getGroups()
Group
s defined in this user database.getGroups
in interface UserDatabase
public java.lang.String getId()
getId
in interface UserDatabase
public java.lang.String getPathname()
public void setPathname(java.lang.String pathname)
pathname
- The new pathnamepublic boolean getReadonly()
public void setReadonly(boolean readonly)
readonly
- the new statuspublic java.util.Iterator<Role> getRoles()
Role
s defined in this user database.getRoles
in interface UserDatabase
public java.util.Iterator<User> getUsers()
User
s defined in this user database.getUsers
in interface UserDatabase
public void close() throws java.lang.Exception
close
in interface UserDatabase
java.lang.Exception
- if any exception is thrown during closingpublic Group createGroup(java.lang.String groupname, java.lang.String description)
Group
defined in this user database.createGroup
in interface UserDatabase
groupname
- The group name of the new group (must be unique)description
- The description of this grouppublic Role createRole(java.lang.String rolename, java.lang.String description)
Role
defined in this user database.createRole
in interface UserDatabase
rolename
- The role name of the new group (must be unique)description
- The description of this grouppublic User createUser(java.lang.String username, java.lang.String password, java.lang.String fullName)
User
defined in this user database.createUser
in interface UserDatabase
username
- 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(java.lang.String groupname)
Group
with the specified group name, if any;
otherwise return null
.findGroup
in interface UserDatabase
groupname
- Name of the group to returnpublic Role findRole(java.lang.String rolename)
Role
with the specified role name, if any;
otherwise return null
.findRole
in interface UserDatabase
rolename
- Name of the role to returnpublic User findUser(java.lang.String username)
User
with the specified user name, if any;
otherwise return null
.findUser
in interface UserDatabase
username
- Name of the user to returnpublic void open() throws java.lang.Exception
open
in interface UserDatabase
java.lang.Exception
- if any exception is thrown during openingpublic void removeGroup(Group group)
Group
from this user database.removeGroup
in interface UserDatabase
group
- The group to be removedpublic void removeRole(Role role)
Role
from this user database.removeRole
in interface UserDatabase
role
- The role to be removedpublic void removeUser(User user)
User
from this user database.removeUser
in interface UserDatabase
user
- The user to be removedpublic boolean isWriteable()
public void save() throws java.lang.Exception
save
in interface UserDatabase
java.lang.Exception
- if any exception is thrown during savingpublic java.lang.String toString()
toString
in class java.lang.Object
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.