Principal (Java SE 14 & JDK 14)
Description: declaration: module: java.base, package: java.security, interface: Principal
Keywords: java.security.Principal interface

Module java.base
Package java.security

# Interface Principal

All Known Subinterfaces:
  `GroupPrincipal`, `UserPrincipal`

All Known Implementing Classes:
  `HttpPrincipal`, `Identity`, `IdentityScope`, `JMXPrincipal`, `KerberosPrincipal`, `LdapPrincipal`, `NTDomainPrincipal`, `NTSid`, `NTSidDomainPrincipal`, `NTSidGroupPrincipal`, `NTSidPrimaryGroupPrincipal`, `NTSidUserPrincipal`, `NTUserPrincipal`, `Signer`, `UnixNumericGroupPrincipal`, `UnixNumericUserPrincipal`, `UnixPrincipal`, `UserPrincipal`, `X500Principal`

    public interface Principal

This interface represents the abstract notion of a principal, which can be used to represent any entity, such as an individual, a corporation, and a login id.

Since:
  1.1
See Also:
  `X509Certificate`

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `boolean` | `equals​(Object another)` | Compares this principal to the specified object.
  `String` | `getName()` | Returns the name of this principal.
  `int` | `hashCode()` | Returns a hashcode for this principal.
  `default boolean` | `implies​(Subject subject)` | Returns true if the specified subject is implied by this principal.
  `String` | `toString()` | Returns a string representation of this principal.

- ## Method Details

  - ### equals

    boolean equals​(Object another)
    Compares this principal to the specified object. Returns true if the object passed in matches the principal represented by the implementation of this interface.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `another` - principal to compare with.
    Returns:
      true if the principal passed in is the same as that encapsulated by this principal, and false otherwise.
    See Also:
      `Object.hashCode()`, `HashMap`

  - ### toString

    String toString()
    Returns a string representation of this principal.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this principal.

  - ### hashCode

    int hashCode()
    Returns a hashcode for this principal.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hashcode for this principal.
    See Also:
      `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

  - ### getName

    String getName()
    Returns the name of this principal.
    Returns:
      the name of this principal.

  - ### implies

    default boolean implies​(Subject subject)
    Returns true if the specified subject is implied by this principal.
    Implementation Requirements:
      The default implementation of this method returns true if `subject` is non-null and contains at least one principal that is equal to this principal.

      Subclasses may override this with a different implementation, if necessary.

    Parameters:
      `subject` - the `Subject`
    Returns:
      true if `subject` is non-null and is implied by this principal, or false otherwise.
    Since:
      1.8