Class MetadataPKIXValidationInformationResolver
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.idp.saml.security.impl.MetadataPKIXValidationInformationResolver
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,Resolver<PKIXValidationInformation,,CriteriaSet> PKIXValidationInformationResolver
public class MetadataPKIXValidationInformationResolver
extends AbstractInitializableComponent
implements PKIXValidationInformationResolver
An implementation of
PKIXValidationInformationResolver which resolves PKIXValidationInformation based
on information stored in SAML 2 metadata. Validation information is retrieved from Shibboleth-specific metadata
extensions to EntityDescriptor represented by instances of KeyAuthority, as well as instances of
PKIXValidationInformation which have been previously populated within the data set available from
XMLObject.getObjectMetadata().
Resolution of trusted names for an entity is also supported, based on KeyName
information contained within the KeyInfo of a role descriptor's KeyDescriptor element.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault value for Shibboleth KeyAuthority verify depth.private final org.slf4j.LoggerClass logger.private RoleDescriptorResolverMetadata RoleDescriptor resolver used to resolve metadata information. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckCriteriaRequirements(CriteriaSet criteriaSet) Check that all necessary criteria are available.protected voidextractPKIXInfo(Collection<PKIXValidationInformation> accumulator, KeyAuthority keyAuthority) Retrieves validation information from the Shibboleth KeyAuthority resolver extension element.Get the metadata RoleDescriptor resolver instance used by this resolver.protected Iterable<RoleDescriptor>getRoleDescriptors(CriteriaSet criteriaSet, String entityID, QName role, String protocol) Get the list of resolver role descriptors which match the given entityID, role and protocol.protected voidgetTrustedNames(Set<String> accumulator, KeyInfo keyInfo) Extract trusted names from a KeyInfo element.protected booleanmatchUsage(UsageType metadataUsage, UsageType criteriaUsage) Match usage enum type values from resolver KeyDescriptor and from specified resolution criteria.resolve(CriteriaSet criteriaSet) protected voidresolvePKIXInfo(Collection<PKIXValidationInformation> accumulator, Extensions extensions) Retrieves validation information from the resolver extension element.protected voidresolvePKIXInfo(Collection<PKIXValidationInformation> accumulator, RoleDescriptor roleDescriptor) Retrieves validation information from the provided role descriptor.resolveSingle(CriteriaSet criteriaSet) resolveTrustedNames(CriteriaSet criteriaSet) protected Collection<PKIXValidationInformation>retrievePKIXInfoFromMetadata(CriteriaSet criteriaSet, String entityID, QName role, String protocol) Retrieves validation information from the provided resolver.retrieveTrustedNamesFromMetadata(CriteriaSet criteriaSet, String entityID, QName role, String protocol, UsageType usage) Retrieves trusted name information from the provided resolver.booleanMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized
-
Field Details
-
KEY_AUTHORITY_VERIFY_DEPTH_DEFAULT
public static final int KEY_AUTHORITY_VERIFY_DEPTH_DEFAULTDefault value for Shibboleth KeyAuthority verify depth.- See Also:
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
roleDescriptorResolver
Metadata RoleDescriptor resolver used to resolve metadata information.
-
-
Constructor Details
-
MetadataPKIXValidationInformationResolver
public MetadataPKIXValidationInformationResolver(@Nonnull @ParameterName(name="resolver") RoleDescriptorResolver resolver) Constructor.- Parameters:
resolver- role descriptor resolver
-
-
Method Details
-
getRoleDescriptorResolver
Get the metadata RoleDescriptor resolver instance used by this resolver.- Returns:
- the resolver's RoleDescriptor metadata resolver instance
-
supportsTrustedNameResolution
public boolean supportsTrustedNameResolution()- Specified by:
supportsTrustedNameResolutionin interfacePKIXValidationInformationResolver
-
resolvePKIXInfo
protected void resolvePKIXInfo(@Nonnull Collection<PKIXValidationInformation> accumulator, @Nonnull RoleDescriptor roleDescriptor) throws ResolverException Retrieves validation information from the provided role descriptor.- Parameters:
roleDescriptor- the role descriptor from which to resolve information.accumulator- accumulator of PKIX validation information to return- Throws:
ResolverException- thrown if the key, certificate, or CRL information is represented in an unsupported format
-
resolvePKIXInfo
protected void resolvePKIXInfo(@Nonnull Collection<PKIXValidationInformation> accumulator, @Nullable Extensions extensions) throws ResolverException Retrieves validation information from the resolver extension element.- Parameters:
extensions- the extension element from which to resolve informationaccumulator- accumulator of PKIX validation information to return- Throws:
ResolverException- thrown if the key, certificate, or CRL information is represented in an unsupported format
-
extractPKIXInfo
protected void extractPKIXInfo(@Nonnull Collection<PKIXValidationInformation> accumulator, @Nonnull KeyAuthority keyAuthority) throws ResolverException Retrieves validation information from the Shibboleth KeyAuthority resolver extension element.- Parameters:
keyAuthority- the Shibboleth KeyAuthority element from which to resolve informationaccumulator- accumulator of PKIX validation information to return- Throws:
ResolverException- thrown if the key, certificate, or CRL information is represented in an unsupported format
-
getTrustedNames
Extract trusted names from a KeyInfo element.- Parameters:
keyInfo- the KeyInfo instance from which to extract trusted namesaccumulator- set of trusted names to return
-
matchUsage
Match usage enum type values from resolver KeyDescriptor and from specified resolution criteria.- Parameters:
metadataUsage- the value from the 'use' attribute of a resolver KeyDescriptor elementcriteriaUsage- the value from specified criteria- Returns:
- true if the two usage specifiers match for purposes of resolving validation information, false otherwise
-