Package org.apache.catalina

## Interface User

- All Superinterfaces:
    `java.security.Principal`
  All Known Implementing Classes:
    `AbstractUser`, `MemoryUser`

      public interface User
      extends java.security.Principal

  Abstract representation of a user in a `UserDatabase`. Each user is optionally associated with a set of `Group`s through which they inherit additional security roles, and is optionally assigned a set of specific `Role`s.
  Since:
    4.1
  Author:
    Craig R. McClanahan

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addGroup​(Group group)` | Add a new `Group` to those this user belongs to.
    `void` | `addRole​(Role role)` | Add a `Role` to those assigned specifically to this user.
    `java.lang.String` | `getFullName()` |
    `java.util.Iterator<Group>` | `getGroups()` |
    `java.lang.String` | `getPassword()` |
    `java.util.Iterator<Role>` | `getRoles()` |
    `UserDatabase` | `getUserDatabase()` |
    `java.lang.String` | `getUsername()` |
    `boolean` | `isInGroup​(Group group)` | Is this user in the specified `Group`?
    `boolean` | `isInRole​(Role role)` | Is this user specifically assigned the specified `Role`?
    `void` | `removeGroup​(Group group)` | Remove a `Group` from those this user belongs to.
    `void` | `removeGroups()` | Remove all `Group`s from those this user belongs to.
    `void` | `removeRole​(Role role)` | Remove a `Role` from those assigned to this user.
    `void` | `removeRoles()` | Remove all `Role`s from those assigned to this user.
    `void` | `setFullName​(java.lang.String fullName)` | Set the full name of this user.
    `void` | `setPassword​(java.lang.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​(java.lang.String username)` | Set the logon username of this user, which must be unique within the scope of a `UserDatabase`.

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

      `equals, getName, hashCode, implies, toString`

- - ### Method Detail

    - #### getFullName

          java.lang.String getFullName()

      Returns:
        the full name of this user.

    - #### setFullName

          void setFullName​(java.lang.String fullName)

      Set the full name of this user.
      Parameters:
        `fullName` - The new full name

    - #### getGroups

          java.util.Iterator<Group> getGroups()

      Returns:
        the set of `Group`s to which this user belongs.

    - #### getPassword

          java.lang.String getPassword()

      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

          void setPassword​(java.lang.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`.
      Parameters:
        `password` - The new logon password

    - #### getRoles

          java.util.Iterator<Role> getRoles()

      Returns:
        the set of `Role`s assigned specifically to this user.

    - #### getUserDatabase

          UserDatabase getUserDatabase()

      Returns:
        the `UserDatabase` within which this User is defined.

    - #### getUsername

          java.lang.String getUsername()

      Returns:
        the logon username of this user, which must be unique within the scope of a `UserDatabase`.

    - #### setUsername

          void setUsername​(java.lang.String username)

      Set the logon username of this user, which must be unique within the scope of a `UserDatabase`.
      Parameters:
        `username` - The new logon username

    - #### addGroup

          void addGroup​(Group group)

      Add a new `Group` to those this user belongs to.
      Parameters:
        `group` - The new group

    - #### addRole

          void addRole​(Role role)

      Add a `Role` to those assigned specifically to this user.
      Parameters:
        `role` - The new role

    - #### isInGroup

          boolean isInGroup​(Group group)

      Is this user in the specified `Group`?
      Parameters:
        `group` - The group to check
      Returns:
        `true` if the user is in the specified group

    - #### isInRole

          boolean isInRole​(Role role)

      Is this user specifically assigned the specified `Role`? This method does NOT check for roles inherited based on `Group` membership.
      Parameters:
        `role` - The role to check
      Returns:
        `true` if the user has the specified role

    - #### removeGroup

          void removeGroup​(Group group)

      Remove a `Group` from those this user belongs to.
      Parameters:
        `group` - The old group

    - #### removeGroups

          void removeGroups()

      Remove all `Group`s from those this user belongs to.

    - #### removeRole

          void removeRole​(Role role)

      Remove a `Role` from those assigned to this user.
      Parameters:
        `role` - The old role

    - #### removeRoles

          void removeRoles()

      Remove all `Role`s from those assigned to this user.