Class SimpleKeyInfoReferenceEncryptedKeyResolver
java.lang.Object
org.opensaml.xmlsec.encryption.support.AbstractEncryptedKeyResolver
org.opensaml.xmlsec.encryption.support.SimpleKeyInfoReferenceEncryptedKeyResolver
- All Implemented Interfaces:
EncryptedKeyResolver
public class SimpleKeyInfoReferenceEncryptedKeyResolver extends AbstractEncryptedKeyResolver
Implementation of
EncryptedKeyResolver
which finds EncryptedKey
elements by dereferencing
KeyInfoReference
children of the KeyInfo
of the EncryptedData
context.
The URI
attribute value must be a same-document fragment identifier (via ID attribute).
Processing of external resources is not supported. Furthermore, the target of the reference must itself
contain either an EncryptedKey
or a subsequent KeyInfoReference
, up to a depth limit.
Other forms of resolution cannot be mixed together with this one.-
Field Summary
Fields Modifier and Type Field Description private int
depthLimit
Number of times to follow a reference before failing.private org.slf4j.Logger
log
Class logger. -
Constructor Summary
Constructors Constructor Description SimpleKeyInfoReferenceEncryptedKeyResolver()
Constructor.SimpleKeyInfoReferenceEncryptedKeyResolver(String recipient)
Constructor.SimpleKeyInfoReferenceEncryptedKeyResolver(Set<String> recipients)
Constructor. -
Method Summary
Modifier and Type Method Description protected KeyInfo
dereferenceURI(KeyInfoReference ref)
Dereference the URI attribute of the specified retrieval method into a KeyInfo.int
getDepthLimit()
Gets the reference depth limit.Iterable<EncryptedKey>
resolve(EncryptedData encryptedData)
Resolve the EncryptedKey elements containing the data encryption key used to encrypt the specified EncryptedData element.protected Iterable<EncryptedKey>
resolveKeyInfo(KeyInfo keyInfo, int limit)
Turn a KeyInfo into an EncryptedKey collection.void
setDepthLimit(int limit)
Sets the reference depth limit, to a minimum of 1.Methods inherited from class org.opensaml.xmlsec.encryption.support.AbstractEncryptedKeyResolver
getRecipients, matchCarriedKeyName, matchDataReference, matchRecipient
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
depthLimit
private int depthLimitNumber of times to follow a reference before failing.
-
-
Constructor Details
-
SimpleKeyInfoReferenceEncryptedKeyResolver
public SimpleKeyInfoReferenceEncryptedKeyResolver()Constructor. -
SimpleKeyInfoReferenceEncryptedKeyResolver
Constructor.- Parameters:
recipients
- the set of recipients
-
SimpleKeyInfoReferenceEncryptedKeyResolver
Constructor.- Parameters:
recipient
- the recipient
-
-
Method Details
-
getDepthLimit
public int getDepthLimit()Gets the reference depth limit.- Returns:
- the depth limit
-
setDepthLimit
public void setDepthLimit(int limit)Sets the reference depth limit, to a minimum of 1.- Parameters:
limit
- limit to set
-
resolve
Resolve the EncryptedKey elements containing the data encryption key used to encrypt the specified EncryptedData element.- Parameters:
encryptedData
- the EncryptedData element context in which to resolve- Returns:
- an iterable of EncryptedKey elements
-
resolveKeyInfo
Turn a KeyInfo into an EncryptedKey collection.- Parameters:
keyInfo
- KeyInfo to processlimit
- depth of references to follow- Returns:
- encrypted keys
-
dereferenceURI
Dereference the URI attribute of the specified retrieval method into a KeyInfo.- Parameters:
ref
- the KeyInfoReference to process- Returns:
- the dereferenced KeyInfo
-