org.opensaml.xml.encryption
Class SimpleKeyInfoReferenceEncryptedKeyResolver

java.lang.Object
  extended by org.opensaml.xml.encryption.AbstractEncryptedKeyResolver
      extended by org.opensaml.xml.encryption.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
private  int depthLimit
          Number of times to follow a reference before failing.
private  Logger log
          Class logger.
 
Constructor Summary
SimpleKeyInfoReferenceEncryptedKeyResolver()
          Constructor.
 
Method Summary
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.xml.encryption.AbstractEncryptedKeyResolver
getRecipients, matchCarriedKeyName, matchDataReference, matchRecipient
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private final Logger log
Class logger.


depthLimit

private int depthLimit
Number of times to follow a reference before failing.

Constructor Detail

SimpleKeyInfoReferenceEncryptedKeyResolver

SimpleKeyInfoReferenceEncryptedKeyResolver()
Constructor.

Method Detail

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

public Iterable<EncryptedKey> resolve(EncryptedData encryptedData)
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

protected Iterable<EncryptedKey> resolveKeyInfo(KeyInfo keyInfo,
                                                int limit)
Turn a KeyInfo into an EncryptedKey collection.

Parameters:
keyInfo - KeyInfo to process
limit - depth of references to follow
Returns:
encrypted keys

dereferenceURI

protected KeyInfo dereferenceURI(KeyInfoReference ref)
Dereference the URI attribute of the specified retrieval method into a KeyInfo.

Parameters:
ref - the KeyInfoReference to process
Returns:
the dereferenced KeyInfo


Copyright © 1999-2013. All Rights Reserved.