# 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

- ## 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
  Modifier
  Constructor
  Description
  `protected`
  `AbstractUser()`
  Constructs a new AbstractUser.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getFullName()`
  Returns the full name of this user.
  `String`
  `getName()`
  Make the principal name the same as the user name.
  `String`
  `getPassword()`
  Returns the logon password of this user.
  `String`
  `getUsername()`
  Returns the logon username of 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 Object

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

  ### Methods inherited from interface Principal

  `equals, hashCode, implies, toString`

  ### Methods inherited from interface User

  `addGroup, addRole, getGroups, getRoles, getUserDatabase, isInGroup, isInRole, removeGroup, removeGroups, removeRole, removeRoles`

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

    protected AbstractUser()
    Constructs a new AbstractUser.

- ## Method Details

  - ### getFullName

    public String getFullName()
    Description copied from interface: `User`
    Returns 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)
    Description copied from interface: `User`
    Set the full name of this user.
    Specified by:
      `setFullName` in interface `User`
    Parameters:
      `fullName` - The new full name

  - ### getPassword

    public String getPassword()
    Description copied from interface: `User`
    Returns the logon password of this user.
    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)
    Description copied from interface: `User`
    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

  - ### getUsername

    public String getUsername()
    Description copied from interface: `User`
    Returns the logon username of this user.
    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)
    Description copied from interface: `User`
    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

  - ### getName

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