# Uses of Interface
net.shibboleth.idp.authn.SubjectCanonicalizer

Packages that use SubjectCanonicalizer
Package
Description
net.shibboleth.idp.authn
APIs related to the authentication of a subject.
net.shibboleth.idp.authn.impl
Implementation of various authentication actions.
net.shibboleth.idp.saml.nameid
Code for manipulating NameIDs and NameIdentifiers.
net.shibboleth.idp.saml.nameid.impl
Implementation of SAML `NameID` and `NameIdentifier` generation and consumption.

## Uses of SubjectCanonicalizer in net.shibboleth.idp.authn

Classes in net.shibboleth.idp.authn that implement SubjectCanonicalizer
Modifier and Type
Class
Description
`class`
`AbstractSubjectCanonicalizer`
A base class for "stand-alone" subject c14n implementations.

## Uses of SubjectCanonicalizer in net.shibboleth.idp.authn.impl

Classes in net.shibboleth.idp.authn.impl that implement SubjectCanonicalizer
Modifier and Type
Class
Description
`class`
`AttributeSourcedSubjectCanonicalization`
A `SubjectCanonicalizer` that resolves attributes and then extracts a resolved `IdPAttribute` value from an `AttributeContext` child obtained via lookup function (by default a child of the `SubjectCanonicalizationContext`), and uses it as the result of subject canonicalization.
`class`
`FunctionSubjectCanonicalization`
A `SubjectCanonicalizer` that delegates implementation to a function, allowing scripted/etc.
`class`
`SimpleSubjectCanonicalization`
A `SubjectCanonicalizer` that transforms the input `Subject` into a principal name by searching for one and only one `UsernamePrincipal` custom principal.
`class`
`X500SubjectCanonicalization`
A `SubjectCanonicalizer` that transforms the input `Subject` into a principal name by searching for one and only one `X509Certificate` public credential, or in its absence one and only one `X500Principal`.

## Uses of SubjectCanonicalizer in net.shibboleth.idp.saml.nameid

Classes in net.shibboleth.idp.saml.nameid that implement SubjectCanonicalizer
Modifier and Type
Class
Description
`class`
`AbstractNameIDCanonicalizer`
Base class for "inline" implementations of SAML c14n flows.

## Uses of SubjectCanonicalizer in net.shibboleth.idp.saml.nameid.impl

Classes in net.shibboleth.idp.saml.nameid.impl that implement SubjectCanonicalizer
Modifier and Type
Class
Description
`class`
`NameIDCanonicalization`
A `SubjectCanonicalizer` that transforms the input `Subject` into a principal name by searching for one and only one `NameIDPrincipal` custom principal, using an injected `NameIDDecoder` to carry out the process.
`class`
`NameIdentifierCanonicalization`
A `SubjectCanonicalizer` that transforms the input `Subject` into a principal name by searching for one and only one `NameIdentifierPrincipal` custom principal, using an injected `NameIdentifierDecoder` to carry out the process.