org.apache.catalina

## Interface User

All Superinterfaces:
  Principal

All Known Implementing Classes:
  AbstractUser, 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 he or she inherits additional security roles, and is optionally assigned a set of specific `Role`s.

Since:
  4.1
Author:
  Craig R. McClanahan

### Method Summary

Methods
`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()` Return the full name of this user.
`Iterator<Group>` `getGroups()` Return the set of `Group`s to which this user belongs.
`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`.
`Iterator<Role>` `getRoles()` Return the set of `Role`s assigned specifically to this user.
`UserDatabase` `getUserDatabase()` Return the `UserDatabase` within which this User is defined.
`String` `getUsername()` Return the logon username of this user, which must be unique within the scope of a `UserDatabase`.
`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, toString`

### Method Detail

#### getFullName

    String getFullName()

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

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

#### getPassword

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

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

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

#### getUserDatabase

    UserDatabase getUserDatabase()

Return the `UserDatabase` within which this User is defined.

#### getUsername

    String getUsername()

Return 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

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

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