Package org.apache.catalina.users

# 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
Author:
  Craig R. McClanahan

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

## Method Summary

Modifier and Type
Method
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 java.security.Principal

`equals, hashCode, implies, toString`

### Methods inherited from interface org.apache.catalina.User

`getUserDatabase`

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

public AbstractUser()

## Method Details

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