Package org.apache.catalina.users

# Class AbstractUser

java.lang.Object
org.apache.catalina.users.AbstractUser

All Implemented Interfaces:
  `Principal`, `User`

Direct Known Subclasses:
  `GenericUser`

public abstract class AbstractUser extends Object implements User

Convenience base class for `User` implementations.

Since:
  4.1
Author:
  Craig R. McClanahan

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `fullName`
  The full name of this user.
  `protected String`
  `password`
  The logon password of this user.
  `protected String`
  `username`
  The logon username of this user.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractUser()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract void`
  `addGroup(Group group)`
  Add a new `Group` to those this user belongs to.
  `abstract void`
  `addRole(Role role)`
  Add a new `Role` to those assigned specifically to this user.
  `String`
  `getFullName()`
  Return the full name of this user.
  `abstract Iterator<Group>`
  `getGroups()`
  Return the set of `Group`s to which this user belongs.
  `String`
  `getName()`
  Make the principal name the same as the group name.
  `String`
  `getPassword()`
  Return the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as `{md5}xxxxx`.
  `abstract Iterator<Role>`
  `getRoles()`
  Return the set of `Role`s assigned specifically to this user.
  `String`
  `getUsername()`
  Return the logon username of this user, which must be unique within the scope of a `UserDatabase`.
  `abstract boolean`
  `isInGroup(Group group)`
  Is this user in the specified `Group`?
  `abstract boolean`
  `isInRole(Role role)`
  Is this user specifically assigned the specified `Role`?
  `abstract void`
  `removeGroup(Group group)`
  Remove a `Group` from those this user belongs to.
  `abstract void`
  `removeGroups()`
  Remove all `Group`s from those this user belongs to.
  `abstract void`
  `removeRole(Role role)`
  Remove a `Role` from those assigned to this user.
  `abstract void`
  `removeRoles()`
  Remove all `Role`s from those assigned to this user.
  `void`
  `setFullName(String fullName)`
  Set the full name of this user.
  `void`
  `setPassword(String password)`
  Set the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as `{md5}xxxxx`.
  `void`
  `setUsername(String username)`
  Set the logon username of this user, which must be unique within the scope of a `UserDatabase`.

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

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

  ### Methods inherited from interface java.security.Principal

  `equals, hashCode, implies, toString`

  ### Methods inherited from interface org.apache.catalina.User

  `getUserDatabase`

- ## Field Details

  - ### fullName

    protected String fullName
    The full name of this user.

  - ### password

    protected String password
    The logon password of this user.

  - ### username

    protected String username
    The logon username of this user.

- ## Constructor Details

  - ### AbstractUser

    public AbstractUser()

- ## Method Details

  - ### getFullName

    public String getFullName()
    Return the full name of this user.
    Specified by:
      `getFullName` in interface `User`
    Returns:
      the full name of this user.

  - ### setFullName

    public void setFullName(String fullName)
    Set the full name of this user.
    Specified by:
      `setFullName` in interface `User`
    Parameters:
      `fullName` - The new full name

  - ### getGroups

    public abstract Iterator<Group> getGroups()
    Return the set of `Group`s to which this user belongs.
    Specified by:
      `getGroups` in interface `User`
    Returns:
      the set of `Group`s to which this user belongs.

  - ### getPassword

    public String getPassword()
    Return the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as `{md5}xxxxx`.
    Specified by:
      `getPassword` in interface `User`
    Returns:
      the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as `{md5}xxxxx`.

  - ### setPassword

    public void setPassword(String password)
    Set the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as `{md5}xxxxx`.
    Specified by:
      `setPassword` in interface `User`
    Parameters:
      `password` - The new logon password

  - ### getRoles

    public abstract Iterator<Role> getRoles()
    Return the set of `Role`s assigned specifically to this user.
    Specified by:
      `getRoles` in interface `User`
    Returns:
      the set of `Role`s assigned specifically to this user.

  - ### getUsername

    public String getUsername()
    Return the logon username of this user, which must be unique within the scope of a `UserDatabase`.
    Specified by:
      `getUsername` in interface `User`
    Returns:
      the logon username of this user, which must be unique within the scope of a `UserDatabase`.

  - ### setUsername

    public void setUsername(String username)
    Set the logon username of this user, which must be unique within the scope of a `UserDatabase`.
    Specified by:
      `setUsername` in interface `User`
    Parameters:
      `username` - The new logon username

  - ### addGroup

    public abstract void addGroup(Group group)
    Add a new `Group` to those this user belongs to.
    Specified by:
      `addGroup` in interface `User`
    Parameters:
      `group` - The new group

  - ### addRole

    public abstract void addRole(Role role)
    Add a new `Role` to those assigned specifically to this user.
    Specified by:
      `addRole` in interface `User`
    Parameters:
      `role` - The new role

  - ### isInGroup

    public abstract boolean isInGroup(Group group)
    Is this user in the specified `Group`?
    Specified by:
      `isInGroup` in interface `User`
    Parameters:
      `group` - The group to check
    Returns:
      `true` if the user is in the specified group

  - ### isInRole

    public abstract boolean isInRole(Role role)
    Is this user specifically assigned the specified `Role`? This method does NOT check for roles inherited based on `Group` membership.
    Specified by:
      `isInRole` in interface `User`
    Parameters:
      `role` - The role to check
    Returns:
      `true` if the user has the specified role

  - ### removeGroup

    public abstract void removeGroup(Group group)
    Remove a `Group` from those this user belongs to.
    Specified by:
      `removeGroup` in interface `User`
    Parameters:
      `group` - The old group

  - ### removeGroups

    public abstract void removeGroups()
    Remove all `Group`s from those this user belongs to.
    Specified by:
      `removeGroups` in interface `User`

  - ### removeRole

    public abstract void removeRole(Role role)
    Remove a `Role` from those assigned to this user.
    Specified by:
      `removeRole` in interface `User`
    Parameters:
      `role` - The old role

  - ### removeRoles

    public abstract void removeRoles()
    Remove all `Role`s from those assigned to this user.
    Specified by:
      `removeRoles` in interface `User`

  - ### getName

    public String getName()
    Make the principal name the same as the group name.
    Specified by:
      `getName` in interface `Principal`