## Uses of Interface
java.security.Principal

Packages that use Principal
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.

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

Classes in com.sun.net.httpserver that implement Principal
`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
`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` `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.

### Uses of Principal in java.net

Methods in java.net that return Principal
`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
`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
`class` `Identity` Deprecated, for removal: This API element is subject to removal in a future version. This class is deprecated and subject to removal in a future version of Java SE.
`class` `IdentityScope` Deprecated, for removal: This API element is subject to removal in a future version. This class is deprecated and subject to removal in a future version of Java SE.
`class` `Signer` Deprecated, for removal: This API element is subject to removal in a future version. This class is deprecated and subject to removal in a future version of Java SE.

Methods in java.security that return Principal
`Principal` Certificate.`getGuarantor()` Deprecated, for removal: This API element is subject to removal in a future version. 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, for removal: This API element is subject to removal in a future version. 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
`Identity` IdentityScope.`getIdentity​(Principal principal)` Deprecated, for removal: This API element is subject to removal in a future version. Retrieves the identity whose name is the same as that of the specified principal.

Constructors in java.security with parameters of type Principal
`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
`interface` `Group` Deprecated, for removal: This API element is subject to removal in a future version. This class is deprecated and subject to removal in a future version of Java SE.

Methods in java.security.acl that return Principal
`Principal` AclEntry.`getPrincipal()` Deprecated, for removal: This API element is subject to removal in a future version. 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
`Enumeration<? extends Principal>` Group.`members()` Deprecated, for removal: This API element is subject to removal in a future version. Returns an enumeration of the members in the group.

Methods in java.security.acl with parameters of type Principal
`boolean` Acl.`addEntry​(Principal caller, AclEntry entry)` Deprecated, for removal: This API element is subject to removal in a future version. Adds an ACL entry to this ACL.
`boolean` Group.`addMember​(Principal user)` Deprecated, for removal: This API element is subject to removal in a future version. Adds the specified member to the group.
`boolean` Owner.`addOwner​(Principal caller, Principal owner)` Deprecated, for removal: This API element is subject to removal in a future version. Adds an owner.
`boolean` Acl.`checkPermission​(Principal principal, Permission permission)` Deprecated, for removal: This API element is subject to removal in a future version. Checks whether or not the specified principal has the specified permission.
`boolean` Owner.`deleteOwner​(Principal caller, Principal owner)` Deprecated, for removal: This API element is subject to removal in a future version. Deletes an owner.
`Enumeration<Permission>` Acl.`getPermissions​(Principal user)` Deprecated, for removal: This API element is subject to removal in a future version. 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, for removal: This API element is subject to removal in a future version. Returns true if the passed principal is a member of the group.
`boolean` Owner.`isOwner​(Principal owner)` Deprecated, for removal: This API element is subject to removal in a future version. Returns true if the given principal is an owner of the ACL.
`boolean` Acl.`removeEntry​(Principal caller, AclEntry entry)` Deprecated, for removal: This API element is subject to removal in a future version. Removes an ACL entry from this ACL.
`boolean` Group.`removeMember​(Principal user)` Deprecated, for removal: This API element is subject to removal in a future version. Removes the specified member from the group.
`void` Acl.`setName​(Principal caller, String name)` Deprecated, for removal: This API element is subject to removal in a future version. Sets the name of this ACL.
`boolean` AclEntry.`setPrincipal​(Principal user)` Deprecated, for removal: This API element is subject to removal in a future version. 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
`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
`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
`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
`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
`<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
`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
`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
`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
`class` `X500Principal` This class represents an X.500 `Principal`.

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

Methods in javax.security.cert that return Principal
`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.