Principal (Java Platform SE 8 )
Keywords: java.security.Principal interface
Date: 2026-04-17

compact1, compact2, compact3
java.security

## Interface Principal

- All Known Subinterfaces:
    Group, GroupPrincipal, UserPrincipal
  All Known Implementing Classes:
    Identity, IdentityScope, JMXPrincipal, KerberosPrincipal, Signer, 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.
  See Also:
    `X509Certificate`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and 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 Detail

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

      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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.