# Uses of Interface
net.shibboleth.idp.authn.principal.CloneablePrincipal

Packages that use CloneablePrincipal
Package
Description
net.shibboleth.idp.authn.principal
Classes supporting Java `Principal` usage.
net.shibboleth.idp.saml.authn.principal
SAML-specific classes for integration with idp-authn-api packages.

## Uses of CloneablePrincipal in net.shibboleth.idp.authn.principal

Classes in net.shibboleth.idp.authn.principal that implement CloneablePrincipal
Modifier and Type
Class
Description
`class`
`HOTPPrincipal`
Principal based on an HOTP authentication.
`class`
`PasswordPrincipal`
Principal that wraps a password.
`class`
`TOTPPrincipal`
Principal based on a TOTP authentication.
`class`
`UsernamePrincipal`
Principal based on a username.

## Uses of CloneablePrincipal in net.shibboleth.idp.saml.authn.principal

Classes in net.shibboleth.idp.saml.authn.principal that implement CloneablePrincipal
Modifier and Type
Class
Description
`final class`
`AuthenticationMethodPrincipal`
Principal based on a SAML 1.x AuthenticationMethod.
`final class`
`AuthnContextClassRefPrincipal`
Principal based on a SAML AuthnContextClassRef.
`final class`
`AuthnContextDeclPrincipal`
Principal based on a SAML AuthnContextDecl.
`final class`
`AuthnContextDeclRefPrincipal`
Principal based on a SAML AuthnContextDeclRef.
`class`
`NameIdentifierPrincipal`
Principal based on the SAML2 `NameIdentifier`.
`class`
`NameIDPrincipal`
Principal based on the SAML2 `NameID`.