org.apache.catalina.users

## Class AbstractUser

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

- All Implemented Interfaces:
    Principal, User
  Direct Known Subclasses:
    MemoryUser

      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 and 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 and Description
    `AbstractUser()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 org.apache.catalina.User

      `getUserDatabase`

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

      `equals, hashCode, toString`

- - ### Field Detail

    - #### 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 Detail

    - #### AbstractUser

          public AbstractUser()

  - ### Method Detail

    - #### 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`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.