UserPrincipal (Java SE 23 & JDK 23)
Description: declaration: module: jdk.security.auth, package: com.sun.security.auth, class: UserPrincipal
Keywords: com.sun.security.auth.UserPrincipal class

# Class UserPrincipal

java.lang.Object
com.sun.security.auth.UserPrincipal

All Implemented Interfaces:
  `Serializable`, `Principal`

public final class UserPrincipal extends Object implements Principal, Serializable
A user principal identified by a username or account name.

After successful authentication, a user `Principal` can be associated with a particular `Subject` to augment that `Subject` with an additional identity. Authorization decisions can then be based upon the `Principal`s that are associated with a `Subject`.

This class is immutable.

Since:
  1.6
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UserPrincipal(String name)`
  Creates a principal.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object object)`
  Compares this principal to the specified object.
  `String`
  `getName()`
  Returns the name of this principal.
  `int`
  `hashCode()`
  Returns a hash code for this principal.
  `String`
  `toString()`
  Returns a string representation of this principal.

  ### Methods declared in class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods declared in interface java.security.Principal

  `implies`

- ## Constructor Details

  - ### UserPrincipal

    public UserPrincipal(String name)
    Creates a principal.
    Parameters:
      `name` - The principal's string name.
    Throws:
      `NullPointerException` - If the `name` is `null`.

- ## Method Details

  - ### equals

    public boolean equals(Object object)
    Compares this principal to the specified object.
    Specified by:
      `equals` in interface `Principal`
    Overrides:
      `equals` in class `Object`
    Parameters:
      `object` - The object to compare this principal against.
    Returns:
      true if they are equal; false otherwise.
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### hashCode

    public int hashCode()
    Returns a hash code for this principal.
    Specified by:
      `hashCode` in interface `Principal`
    Overrides:
      `hashCode` in class `Object`
    Returns:
      The principal's hash code.
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(java.lang.Object)`

  - ### getName

    public String getName()
    Returns the name of this principal.
    Specified by:
      `getName` in interface `Principal`
    Returns:
      The principal's name.

  - ### toString

    public String toString()
    Returns a string representation of this principal.
    Specified by:
      `toString` in interface `Principal`
    Overrides:
      `toString` in class `Object`
    Returns:
      The principal's name.