# 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.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
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
`final 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.
`final 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
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, 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
Modifier and Type
Method
Description
`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.
`final 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, 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
Modifier
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.cert

Methods in java.security.cert that return Principal
Modifier and Type
Method
Description
`abstract Principal`
X509Certificate.`getIssuerDN()`
Deprecated.
Use `X509Certificate.getIssuerX500Principal()` instead.
`abstract Principal`
X509CRL.`getIssuerDN()`
Deprecated.
Use `X509CRL.getIssuerX500Principal()` instead.
`abstract Principal`
X509Certificate.`getSubjectDN()`
Deprecated.
Use `X509Certificate.getSubjectX500Principal()` instead.

## 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
Modifier
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
`final 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
`final 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, for removal: This API element is subject to removal in a future version.
Gets the `issuer` (issuer distinguished name) value from the certificate.
`abstract Principal`
X509Certificate.`getSubjectDN()`
Deprecated, for removal: This API element is subject to removal in a future version.
Gets the `subject` (subject distinguished name) value from the certificate.