org.apache.catalina

## Interface User

- All Superinterfaces:
    Principal
  All Known Implementing Classes:
    AbstractUser, GenericUser, MemoryUser

      public interface User
      extends 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 and 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.
    `String` | `getFullName()`
    `Iterator<Group>` | `getGroups()`
    `String` | `getPassword()`
    `Iterator<Role>` | `getRoles()`
    `UserDatabase` | `getUserDatabase()`
    `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(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 interface java.security.Principal

      `equals, getName, hashCode, implies, toString`

- - ### Method Detail

    - #### getFullName

          String getFullName()

      Returns:
        the full name of this user.

    - #### setFullName

          void setFullName(String fullName)

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

    - #### getGroups

          Iterator<Group> getGroups()

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

    - #### getPassword

          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(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

          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

          String getUsername()

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

    - #### setUsername

          void setUsername(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.

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