Package net.shibboleth.idp.authn.principal

# Interface PrincipalSupportingComponent

All Known Implementing Classes:
  `AbstractAuditingValidationAction`, `AbstractCredentialValidator`, `AbstractUsernamePasswordCredentialValidator`, `AbstractValidationAction`, `AuthenticationFlowDescriptor`, `AuthenticationResult`, `HTPasswdCredentialValidator`, `JAASCredentialValidator`, `KerberosCredentialValidator`, `LDAPCredentialValidator`, `ValidateCredentials`, `ValidateExternalAuthentication`, `ValidateFunctionResult`, `ValidateRemoteUser`, `ValidateSAMLAuthentication`, `ValidateUserAgentAddress`, `X509CertificateCredentialValidator`

public interface PrincipalSupportingComponent
Interface for an authentication component that exposes custom `Principal` objects.

Components may expose principals based on both the potential to support them, or because they actively contain them, depending on the nature of a component. Calling components rely on this interface to determine whether a supporting component applies to a given operation or request based on the principals returned.

## Method Summary

Modifier and Type
Method
Description
`<T extends Principal>
Set<T>`
`getSupportedPrincipals(Class<T> c)`
Get an immutable set of supported custom principals that the component produces, supports, contains, etc.

## Method Details

### getSupportedPrincipals

@Nonnull @Unmodifiable @NotLive <T extends Principal> Set<T> getSupportedPrincipals(@Nonnull Class<T> c)
Get an immutable set of supported custom principals that the component produces, supports, contains, etc.

Type Parameters:
  `T` - type of Principal to inquire on
Parameters:
  `c` - type of Principal to inquire on
Returns:
  a set of matching principals