Package org.apache.catalina.mbeans

## Class SparseUserDatabaseMBean

- java.lang.Object
- - org.apache.tomcat.util.modeler.BaseModelMBean
  - - org.apache.catalina.mbeans.SparseUserDatabaseMBean

All Implemented Interfaces:
  `DynamicMBean`, `MBeanRegistration`, `ModelMBeanNotificationBroadcaster`, `NotificationBroadcaster`

Direct Known Subclasses:
  `MemoryUserDatabaseMBean`

    public class SparseUserDatabaseMBean
    extends BaseModelMBean

A ModelMBean implementation for the `org.apache.catalina.users.SparseUserDatabase` component. The main difference is that the MBeans are created on demand (for example, the findUser method would register the corresponding user and make it available for management. All the MBeans created for users, groups and roles are then discarded when save is invoked.

Author:
  Craig R. McClanahan

### Field Summary

Fields
`protected ManagedBean` `managed` The `ManagedBean` information describing this MBean.
`protected ManagedBean` `managedGroup` The `ManagedBean` information describing Group MBeans.
`protected ManagedBean` `managedRole` The `ManagedBean` information describing Group MBeans.
`protected ManagedBean` `managedUser` The `ManagedBean` information describing User MBeans.
`protected MBeanServer` `mserver` The `MBeanServer` for this application.
`protected Registry` `registry` The configuration information registry for our managed beans.

### Fields inherited from class org.apache.tomcat.util.modeler.BaseModelMBean

`attributeBroadcaster, generalBroadcaster, managedBean, oname, resource, resourceType`

### Constructor Summary

Constructors
`SparseUserDatabaseMBean()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `createGroup​(String groupname, String description)` Create a new Group and return the corresponding MBean Name.
`String` `createRole​(String rolename, String description)` Create a new Role and return the corresponding MBean Name.
`String` `createUser​(String username, String password, String fullName)` Create a new User and return the corresponding MBean Name.
`String` `findGroup​(String groupname)` Return the MBean Name for the specified group name (if any); otherwise return `null`.
`String` `findRole​(String rolename)` Return the MBean Name for the specified role name (if any); otherwise return `null`.
`String` `findUser​(String username)` Return the MBean Name for the specified user name (if any); otherwise return `null`.
`String[]` `getGroups()`
`String[]` `getRoles()`
`String[]` `getUsers()`
`void` `removeGroup​(String groupname)` Remove an existing group and destroy the corresponding MBean.
`void` `removeRole​(String rolename)` Remove an existing role and destroy the corresponding MBean.
`void` `removeUser​(String username)` Remove an existing user and destroy the corresponding MBean.
`void` `save()` Call actual save and unregister all obsolete beans.

### Methods inherited from class org.apache.tomcat.util.modeler.BaseModelMBean

`addAttributeChangeNotificationListener, addNotificationListener, getAttribute, getAttributes, getClassName, getJmxName, getManagedResource, getMBeanInfo, getModelerType, getNotificationInfo, getObjectName, invoke, postDeregister, postRegister, preDeregister, preRegister, removeAttributeChangeNotificationListener, removeNotificationListener, sendAttributeChangeNotification, sendAttributeChangeNotification, sendNotification, sendNotification, setAttribute, setAttributes, setManagedBean, setManagedResource, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### registry

    protected final Registry registry

The configuration information registry for our managed beans.

#### mserver

    protected final MBeanServer mserver

The `MBeanServer` for this application.

#### managed

    protected final ManagedBean managed

The `ManagedBean` information describing this MBean.

#### managedGroup

    protected final ManagedBean managedGroup

The `ManagedBean` information describing Group MBeans.

#### managedRole

    protected final ManagedBean managedRole

The `ManagedBean` information describing Group MBeans.

#### managedUser

    protected final ManagedBean managedUser

The `ManagedBean` information describing User MBeans.

### Constructor Detail

#### SparseUserDatabaseMBean

    public SparseUserDatabaseMBean()

### Method Detail

#### getGroups

    public String[] getGroups()

Returns:
  the MBean Names of all groups defined in this database.

#### getRoles

    public String[] getRoles()

Returns:
  the MBean Names of all roles defined in this database.

#### getUsers

    public String[] getUsers()

Returns:
  the MBean Names of all users defined in this database.

#### createGroup

    public String createGroup​(String groupname,
                              String description)

Create a new Group and return the corresponding MBean Name.

Parameters:
  `groupname` - Group name of the new group
  `description` - Description of the new group
Returns:
  the new group object name

#### createRole

    public String createRole​(String rolename,
                             String description)

Create a new Role and return the corresponding MBean Name.

Parameters:
  `rolename` - Group name of the new group
  `description` - Description of the new group
Returns:
  the new role object name

#### createUser

    public String createUser​(String username,
                             String password,
                             String fullName)

Create a new User and return the corresponding MBean Name.

Parameters:
  `username` - User name of the new user
  `password` - Password for the new user
  `fullName` - Full name for the new user
Returns:
  the new user object name

#### findGroup

    public String findGroup​(String groupname)

Return the MBean Name for the specified group name (if any); otherwise return `null`.

Parameters:
  `groupname` - Group name to look up
Returns:
  the group object name

#### findRole

    public String findRole​(String rolename)

Return the MBean Name for the specified role name (if any); otherwise return `null`.

Parameters:
  `rolename` - Role name to look up
Returns:
  the role object name

#### findUser

    public String findUser​(String username)

Return the MBean Name for the specified user name (if any); otherwise return `null`.

Parameters:
  `username` - User name to look up
Returns:
  the user object name

#### removeGroup

    public void removeGroup​(String groupname)

Remove an existing group and destroy the corresponding MBean.

Parameters:
  `groupname` - Group name to remove

#### removeRole

    public void removeRole​(String rolename)

Remove an existing role and destroy the corresponding MBean.

Parameters:
  `rolename` - Role name to remove

#### removeUser

    public void removeUser​(String username)

Remove an existing user and destroy the corresponding MBean.

Parameters:
  `username` - User name to remove

#### save

    public void save()

Call actual save and unregister all obsolete beans.