## Uses of Interface
java.security.Principal

- Packages that use Principal
  Package | Description
  --- | ---
  com.sun.net.httpserver | Provides a simple high-level Http server API, which can be used to build embedded HTTP servers.
  com.sun.security.auth | Provides implementations of `Principal`.
  java.net | Provides the classes for implementing networking applications.
  java.nio.file.attribute | Interfaces and classes providing access to file and file system attributes.
  java.security | Provides the classes and interfaces for the security framework.
  java.security.acl | The classes and interfaces in this package have been deprecated.
  java.security.cert | Provides classes and interfaces for parsing and managing certificates, certificate revocation lists (CRLs), and certification paths.
  javax.management.remote | Interfaces for remote access to JMX MBean servers.
  javax.net.ssl | Provides classes for the secure socket package.
  javax.security.auth | This package provides a framework for authentication and authorization.
  javax.security.auth.kerberos | This package contains utility classes related to the Kerberos network authentication protocol.
  javax.security.auth.x500 | This package contains the classes that should be used to store X500 Principal and X500 Private Credentials in a Subject.
  javax.security.cert | Provides classes for public key certificates.
  javax.xml.ws | This package contains the core JAX-WS APIs.
  javax.xml.ws.spi.http | Provides HTTP SPI that is used for portable deployment of JAX-WS web services in containers(for e.g. servlet containers).

- - ### Uses of Principal in com.sun.net.httpserver

    Classes in com.sun.net.httpserver that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `HttpPrincipal` | Represents a user authenticated by HTTP Basic or Digest authentication.

  - ### Uses of Principal in com.sun.security.auth

    Classes in com.sun.security.auth that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `LdapPrincipal` | A principal identified by a distinguished name as specified by RFC 2253.
    `class` | `NTDomainPrincipal` | This class implements the `Principal` interface and represents the name of the Windows NT domain into which the user authenticated.
    `class` | `NTSid` | This class implements the `Principal` interface and represents information about a Windows NT user, group or realm.
    `class` | `NTSidDomainPrincipal` | This class extends `NTSid` and represents a Windows NT user's domain SID.
    `class` | `NTSidGroupPrincipal` | This class extends `NTSid` and represents one of the groups to which a Windows NT user belongs.
    `class` | `NTSidPrimaryGroupPrincipal` | This class extends `NTSid` and represents a Windows NT user's primary group SID.
    `class` | `NTSidUserPrincipal` | This class extends `NTSid` and represents a Windows NT user's SID.
    `class` | `NTUserPrincipal` | This class implements the `Principal` interface and represents a Windows NT user.
    `class` | `SolarisNumericGroupPrincipal` | Deprecated, for removal: This API element is subject to removal in a future version. As of JDK 1.4, replaced by `UnixNumericGroupPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
    `class` | `SolarisNumericUserPrincipal` | Deprecated, for removal: This API element is subject to removal in a future version. As of JDK 1.4, replaced by `UnixNumericUserPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
    `class` | `SolarisPrincipal` | Deprecated, for removal: This API element is subject to removal in a future version. As of JDK 1.4, replaced by `UnixPrincipal`. This class is entirely deprecated. This class is subject to removal in a future version of Java SE.
    `class` | `UnixNumericGroupPrincipal` | This class implements the `Principal` interface and represents a user's Unix group identification number (GID).
    `class` | `UnixNumericUserPrincipal` | This class implements the `Principal` interface and represents a user's Unix identification number (UID).
    `class` | `UnixPrincipal` | This class implements the `Principal` interface and represents a Unix user.
    `class` | `UserPrincipal` | A user principal identified by a username or account name.
    `class` | `X500Principal` | Deprecated, for removal: This API element is subject to removal in a future version. A new X500Principal class is available in the Java platform. This X500Principal classs is entirely deprecated and is here to allow for a smooth transition to the new class. This class is subject to removal in a future version of Java SE.

  - ### Uses of Principal in java.net

    Methods in java.net that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Principal` | SecureCacheResponse.`getLocalPrincipal​()` | Returns the principal that was sent to the server during handshaking in the original connection that retrieved the network resource.
    `abstract Principal` | SecureCacheResponse.`getPeerPrincipal​()` | Returns the server's principal which was established as part of defining the session during the original connection that retrieved the network resource.

  - ### Uses of Principal in java.nio.file.attribute

    Subinterfaces of Principal in java.nio.file.attribute
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `GroupPrincipal` | A `UserPrincipal` representing a group identity, used to determine access rights to objects in a file system.
    `interface` | `UserPrincipal` | A `Principal` representing an identity used to determine access rights to objects in a file system.

  - ### Uses of Principal in java.security

    Classes in java.security that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Identity` | Deprecated. This class is no longer used. Its functionality has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
    `class` | `IdentityScope` | Deprecated. This class is no longer used. Its functionality has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.
    `class` | `Signer` | Deprecated. This class is no longer used. Its functionality has been replaced by `java.security.KeyStore`, the `java.security.cert` package, and `java.security.Principal`.

    Methods in java.security that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Principal` | Certificate.`getGuarantor​()` | Deprecated. Returns the guarantor of the certificate, that is, the principal guaranteeing that the public key associated with this certificate is that of the principal associated with this certificate.
    `Principal` | Certificate.`getPrincipal​()` | Deprecated. Returns the principal of the principal-key pair being guaranteed by the guarantor.
    `Principal[]` | ProtectionDomain.`getPrincipals​()` | Returns an array of principals for this domain.

    Methods in java.security with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Identity` | IdentityScope.`getIdentity​(Principal principal)` | Deprecated. Retrieves the identity whose name is the same as that of the specified principal.

    Constructors in java.security with parameters of type Principal
    Constructor | Description
    --- | ---
    `ProtectionDomain​(CodeSource codesource, PermissionCollection permissions, ClassLoader classloader, Principal[] principals)` | Creates a new ProtectionDomain qualified by the given CodeSource, Permissions, ClassLoader and array of Principals.

  - ### Uses of Principal in java.security.acl

    Subinterfaces of Principal in java.security.acl
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `Group` | Deprecated. This package has been replaced by `java.security.Policy` and related classes since 1.2.

    Methods in java.security.acl that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Principal` | AclEntry.`getPrincipal​()` | Deprecated. Returns the principal for which permissions are granted or denied by this ACL entry.

    Methods in java.security.acl that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Enumeration<? extends Principal>` | Group.`members​()` | Deprecated. Returns an enumeration of the members in the group.

    Methods in java.security.acl with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | Acl.`addEntry​(Principal caller, AclEntry entry)` | Deprecated. Adds an ACL entry to this ACL.
    `boolean` | Group.`addMember​(Principal user)` | Deprecated. Adds the specified member to the group.
    `boolean` | Owner.`addOwner​(Principal caller, Principal owner)` | Deprecated. Adds an owner.
    `boolean` | Acl.`checkPermission​(Principal principal, Permission permission)` | Deprecated. Checks whether or not the specified principal has the specified permission.
    `boolean` | Owner.`deleteOwner​(Principal caller, Principal owner)` | Deprecated. Deletes an owner.
    `Enumeration<Permission>` | Acl.`getPermissions​(Principal user)` | Deprecated. Returns an enumeration for the set of allowed permissions for the specified principal (representing an entity such as an individual or a group).
    `boolean` | Group.`isMember​(Principal member)` | Deprecated. Returns true if the passed principal is a member of the group.
    `boolean` | Owner.`isOwner​(Principal owner)` | Deprecated. Returns true if the given principal is an owner of the ACL.
    `boolean` | Acl.`removeEntry​(Principal caller, AclEntry entry)` | Deprecated. Removes an ACL entry from this ACL.
    `boolean` | Group.`removeMember​(Principal user)` | Deprecated. Removes the specified member from the group.
    `void` | Acl.`setName​(Principal caller, String name)` | Deprecated. Sets the name of this ACL.
    `boolean` | AclEntry.`setPrincipal​(Principal user)` | Deprecated. Specifies the principal for which permissions are granted or denied by this ACL entry.

  - ### Uses of Principal in java.security.cert

    Methods in java.security.cert that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Principal` | X509Certificate.`getIssuerDN​()` | Denigrated, replaced by X509Certificate.getIssuerX500Principal().
    `abstract Principal` | X509CRL.`getIssuerDN​()` | Denigrated, replaced by X509CRL.getIssuerX500Principal().
    `abstract Principal` | X509Certificate.`getSubjectDN​()` | Denigrated, replaced by X509Certificate.getSubjectX500Principal().

  - ### Uses of Principal in javax.management.remote

    Classes in javax.management.remote that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `JMXPrincipal` | The identity of a remote client of the JMX Remote API.

  - ### Uses of Principal in javax.net.ssl

    Methods in javax.net.ssl that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Principal` | HandshakeCompletedEvent.`getLocalPrincipal​()` | Returns the principal that was sent to the peer during handshaking.
    `Principal` | HttpsURLConnection.`getLocalPrincipal​()` | Returns the principal that was sent to the server during handshaking.
    `Principal` | SSLSession.`getLocalPrincipal​()` | Returns the principal that was sent to the peer during handshaking.
    `Principal` | HandshakeCompletedEvent.`getPeerPrincipal​()` | Returns the identity of the peer which was established as part of defining the session.
    `Principal` | HttpsURLConnection.`getPeerPrincipal​()` | Returns the server's principal which was established as part of defining the session.
    `Principal` | SSLSession.`getPeerPrincipal​()` | Returns the identity of the peer which was established as part of defining the session.

    Methods in javax.net.ssl with parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | X509KeyManager.`chooseClientAlias​(String[] keyType, Principal[] issuers, Socket socket)` | Choose an alias to authenticate the client side of a secure socket given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `String` | X509ExtendedKeyManager.`chooseEngineClientAlias​(String[] keyType, Principal[] issuers, SSLEngine engine)` | Choose an alias to authenticate the client side of an `SSLEngine` connection given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `String` | X509ExtendedKeyManager.`chooseEngineServerAlias​(String keyType, Principal[] issuers, SSLEngine engine)` | Choose an alias to authenticate the server side of an `SSLEngine` connection given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `String` | X509KeyManager.`chooseServerAlias​(String keyType, Principal[] issuers, Socket socket)` | Choose an alias to authenticate the server side of a secure socket given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `String[]` | X509KeyManager.`getClientAliases​(String keyType, Principal[] issuers)` | Get the matching aliases for authenticating the client side of a secure socket given the public key type and the list of certificate issuer authorities recognized by the peer (if any).
    `String[]` | X509KeyManager.`getServerAliases​(String keyType, Principal[] issuers)` | Get the matching aliases for authenticating the server side of a secure socket given the public key type and the list of certificate issuer authorities recognized by the peer (if any).

  - ### Uses of Principal in javax.security.auth

    Methods in javax.security.auth with type parameters of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T extends Principal> Set<T>` | Subject.`getPrincipals​(Class<T> c)` | Return a `Set` of Principals associated with this `Subject` that are instances or subclasses of the specified `Class`.

    Methods in javax.security.auth that return types with arguments of type Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Set<Principal>` | Subject.`getPrincipals​()` | Return the `Set` of Principals associated with this `Subject`.

    Constructor parameters in javax.security.auth with type arguments of type Principal
    Constructor | Description
    --- | ---
    `Subject​(boolean readOnly, Set<? extends Principal> principals, Set<?> pubCredentials, Set<?> privCredentials)` | Create an instance of a `Subject` with Principals and credentials.

  - ### Uses of Principal in javax.security.auth.kerberos

    Classes in javax.security.auth.kerberos that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `KerberosPrincipal` | This class encapsulates a Kerberos principal.

  - ### Uses of Principal in javax.security.auth.x500

    Classes in javax.security.auth.x500 that implement Principal
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `X500Principal` | This class represents an X.500 `Principal`.

  - ### Uses of Principal in javax.security.cert

    Methods in javax.security.cert that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Principal` | X509Certificate.`getIssuerDN​()` | Deprecated. Gets the `issuer` (issuer distinguished name) value from the certificate.
    `abstract Principal` | X509Certificate.`getSubjectDN​()` | Deprecated. Gets the `subject` (subject distinguished name) value from the certificate.

  - ### Uses of Principal in javax.xml.ws

    Methods in javax.xml.ws that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `Principal` | WebServiceContext.`getUserPrincipal​()` | Returns the Principal that identifies the sender of the request currently being serviced.

  - ### Uses of Principal in javax.xml.ws.spi.http

    Methods in javax.xml.ws.spi.http that return Principal
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract Principal` | HttpExchange.`getUserPrincipal​()` | Returns the `Principal` that represents the authenticated user for this `HttpExchange`.