Class SAMLMetadataEncryptionParametersResolver
- All Implemented Interfaces:
Resolver<EncryptionParameters,,CriteriaSet> EncryptionParametersResolver
BasicEncryptionParametersResolver which resolves
credentials and algorithm preferences against SAML metadata via a MetadataCredentialResolver.
In addition to the Criterion inputs documented in
BasicEncryptionParametersResolver, the inputs and associated modes of operation documented for
MetadataCredentialResolver are also supported and required.
The CriteriaSet instance passed to the configured metadata credential resolver will be a copy
of the input criteria set, with the addition of a UsageCriterion containing the value
UsageType.ENCRYPTION, which will replace any existing usage criterion instance.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate MetadataCredentialResolverMetadata credential resolver.Default for usage of key wrapping with key agreement if not otherwise configured.private org.slf4j.LoggerLogger.private booleanFlag indicating whether the resolver should attempt to merge RSAOAEPParameters values resolved from metadata with additional parameters from supplied instances ofEncryptionConfiguration. -
Constructor Summary
ConstructorsConstructorDescriptionConstructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancheckAndProcessKeyAgreement(EncryptionParameters params, CriteriaSet criteria, Predicate<String> includeExcludePredicate, Credential credential) Check for a credential type that implies a key agreement operation, and process if so indicated.concatLists(List<String>... lists) Concatenate multiple lists into one list.protected booleancredentialSupportsEncryptionMethod(Credential credential, EncryptionMethod encryptionMethod) Evaluate whether the specified credential is supported for use with the specifiedEncryptionMethod.protected booleanevaluateEncryptionMethodChildren(EncryptionMethod encryptionMethod, CriteriaSet criteria, Predicate<String> includeExcludePredicate) Evaluate the child elements of an EncryptionMethod for acceptability based on for example include/exclude policy and algorithm runtime support.protected booleanevaluateRSAOAEPChildren(EncryptionMethod encryptionMethod, CriteriaSet criteria, Predicate<String> includeExcludePredicate) Evaluate the child elements of an RSA OAEP EncryptionMethod for acceptability based on for example include/exclude policy and algorithm runtime support.Get the default for usage of key wrapping with key agreement if not otherwise configured.getEffectiveKeyAgreementConfiguration(CriteriaSet criteria, Credential credential) Get the effectiveSAMLMetadataKeyAgreementEncryptionConfigurationto use with the specified credential.protected MetadataCredentialResolverGet the metadata credential resolver instance to use to resolve encryption credentials.booleanDetermine whether the resolver should attempt to merge RSAOAEPParameters values resolved from metadata with additional parameters from supplied instances ofEncryptionConfiguration.protected voidpopulateRSAOAEPParamsFromEncryptionMethod(RSAOAEPParameters params, EncryptionMethod encryptionMethod, Predicate<String> includeExcludePredicate) ExtractDigestMethod,MGFandOAEPparamsdata present on the supplied instance ofEncryptionMethodand populate it on the supplied instance of ofRSAOAEPParameters.protected voidresolveAndPopulateCredentialsAndAlgorithms(EncryptionParameters params, CriteriaSet criteria, Predicate<String> includeExcludePredicate) Resolve and populate the data encryption and key transport credentials and algorithm URIs.protected voidresolveAndPopulateRSAOAEPParams(EncryptionParameters params, CriteriaSet criteria, Predicate<String> includeExcludePredicate, EncryptionMethod encryptionMethod) Resolve and populate an instance ofRSAOAEPParameters, if appropriate for the selected key transport encryption algorithm.protected Pair<String,EncryptionMethod> resolveDataEncryptionAlgorithm(CriteriaSet criteria, Predicate<String> includeExcludePredicate, SAMLMDCredentialContext metadataCredContext) Determine the data encryption algorithm URI to use, also returning the associatedEncryptionMethodfrom metadata if relevant.protected Pair<String,EncryptionMethod> resolveKeyTransportAlgorithm(Credential keyTransportCredential, CriteriaSet criteria, Predicate<String> includeExcludePredicate, String dataEncryptionAlgorithm, SAMLMDCredentialContext metadataCredContext) Determine the key transport algorithm URI to use with the specified credential, also returning the associatedEncryptionMethodfrom metadata if relevant.voidSet the default for usage of key wrapping with key agreement if not otherwise configured.voidsetMergeMetadataRSAOAEPParametersWithConfig(boolean flag) Set whether the resolver should attempt to merge RSAOAEPParameters values resolved from metadata with additional parameters from supplied instances ofEncryptionConfiguration.Methods inherited from class org.opensaml.xmlsec.impl.BasicEncryptionParametersResolver
checkAndProcessKeyAgreement, credentialSupportsAlgorithm, generateDataEncryptionCredential, getAlgorithmRegistry, getAlgorithmRuntimeSupportedPredicate, getEffectiveDataEncryptionAlgorithms, getEffectiveDataEncryptionCredentials, getEffectiveKeyTransportAlgorithms, getEffectiveKeyTransportCredentials, getIncludeExcludePredicate, isAutoGenerateDataEncryptionCredential, isDataEncryptionAlgorithm, isKeyTransportAlgorithm, logResult, populateRSAOAEPParams, processDataEncryptionCredentialAutoGeneration, resolve, resolveAndPopulateRSAOAEPParams, resolveDataEncryptionAlgorithm, resolveDataEncryptionAlgorithm, resolveDataKeyInfoGenerator, resolveKeyTransportAlgorithm, resolveKeyTransportAlgorithm, resolveKeyTransportAlgorithmPredicate, resolveKeyTransportKeyInfoGenerator, resolveSingle, setAlgorithmRegistry, setAutoGenerateDataEncryptionCredential, validateMethods inherited from class org.opensaml.xmlsec.impl.AbstractSecurityParametersResolver
lookupKeyInfoGenerator, resolveAndPopulateIncludesExcludes, resolveEffectiveExcludes, resolveEffectiveIncludes, resolveIncludeExcludePrecedence, resolveIncludeExcludePredicate
-
Field Details
-
log
@Nonnull private org.slf4j.Logger logLogger. -
credentialResolver
Metadata credential resolver. -
mergeMetadataRSAOAEPParametersWithConfig
private boolean mergeMetadataRSAOAEPParametersWithConfigFlag indicating whether the resolver should attempt to merge RSAOAEPParameters values resolved from metadata with additional parameters from supplied instances ofEncryptionConfiguration. -
defaultKeyAgreementUseKeyWrap
@Nonnull private SAMLMetadataKeyAgreementEncryptionConfiguration.KeyWrap defaultKeyAgreementUseKeyWrapDefault for usage of key wrapping with key agreement if not otherwise configured.
-
-
Constructor Details
-
SAMLMetadataEncryptionParametersResolver
public SAMLMetadataEncryptionParametersResolver(@Nonnull @ParameterName(name="resolver") MetadataCredentialResolver resolver) Constructor.- Parameters:
resolver- the metadata credential resolver instance to use to resolve encryption credentials
-
-
Method Details
-
isMergeMetadataRSAOAEPParametersWithConfig
public boolean isMergeMetadataRSAOAEPParametersWithConfig()Determine whether the resolver should attempt to merge RSAOAEPParameters values resolved from metadata with additional parameters from supplied instances ofEncryptionConfiguration.Defaults to:
false- Returns:
- true if should merge metadata parameters with configuration, false otherwise
-
setMergeMetadataRSAOAEPParametersWithConfig
public void setMergeMetadataRSAOAEPParametersWithConfig(boolean flag) Set whether the resolver should attempt to merge RSAOAEPParameters values resolved from metadata with additional parameters from supplied instances ofEncryptionConfiguration.Defaults to:
false- Parameters:
flag- true if should merge metadata parameters with configuration, false otherwise
-
getDefaultKeyAgreemenUseKeyWrap
@Nonnull public SAMLMetadataKeyAgreementEncryptionConfiguration.KeyWrap getDefaultKeyAgreemenUseKeyWrap()Get the default for usage of key wrapping with key agreement if not otherwise configured.The default is:
SAMLMetadataKeyAgreementEncryptionConfiguration.KeyWrap.Default.- Returns:
- the default value
-
setDefaultKeyAgreementUseKeyWrap
public void setDefaultKeyAgreementUseKeyWrap(@Nullable SAMLMetadataKeyAgreementEncryptionConfiguration.KeyWrap keyWrap) Set the default for usage of key wrapping with key agreement if not otherwise configured.The default is:
SAMLMetadataKeyAgreementEncryptionConfiguration.KeyWrap.Default.- Parameters:
keyWrap- the value to set; null impliesSAMLMetadataKeyAgreementEncryptionConfiguration.KeyWrap.Default
-
getMetadataCredentialResolver
Get the metadata credential resolver instance to use to resolve encryption credentials.- Returns:
- the configured metadata credential resolver instance
-
concatLists
Concatenate multiple lists into one list.- Parameters:
lists- the lists to process- Returns:
- the concatenation of the supplied lists
-
populateRSAOAEPParamsFromEncryptionMethod
protected void populateRSAOAEPParamsFromEncryptionMethod(@Nonnull RSAOAEPParameters params, @Nonnull EncryptionMethod encryptionMethod, @Nonnull Predicate<String> includeExcludePredicate) ExtractDigestMethod,MGFandOAEPparamsdata present on the supplied instance ofEncryptionMethodand populate it on the supplied instance of ofRSAOAEPParameters.Include/exclude evaluation is applied to the digest method and MGF algorithm URIs.
- Parameters:
params- the existing RSAOAEPParameters instance being populatedencryptionMethod- the method encryption method that was resolved along with the key transport encryption algorithm URI, if any. May be null.includeExcludePredicate- the include/exclude predicate with which to evaluate the candidate data encryption and key transport algorithm URIs
-
credentialSupportsEncryptionMethod
protected boolean credentialSupportsEncryptionMethod(@Nonnull Credential credential, @Nonnull EncryptionMethod encryptionMethod) Evaluate whether the specified credential is supported for use with the specifiedEncryptionMethod.- Parameters:
credential- the credential to evaluateencryptionMethod- the encryption method to evaluate- Returns:
- true if credential may be used with the supplied encryption method, false otherwise
-