opensaml::saml2md::AbstractMetadataProvider Class Reference

Base class for caching metadata providers. More...

`#include <saml/saml2/metadata/AbstractMetadataProvider.h>`

Inheritance diagram for opensaml::saml2md::AbstractMetadataProvider:
[legend]
Collaboration diagram for opensaml::saml2md::AbstractMetadataProvider:
[legend]

## Public Member Functions

void | outputStatus (std::ostream &os) const
| Generate an XML representation of the provider's status.
void | emitChangeEvent () const
| Convenience method for notifying every registered Observer of an event.
void | emitChangeEvent (const EntityDescriptor &) const
| Convenience method for notifying every registered Observer of an event.
std::pair< const EntityDescriptor *, const RoleDescriptor * > | getEntityDescriptor (const Criteria &criteria) const
| Gets entity metadata based on supplied criteria.
const EntitiesDescriptor * | getEntitiesDescriptor (const char *name, bool requireValidMetadata=true) const
| Gets the metadata for a given group of entities.
const xmltooling::Credential * | resolve (const xmltooling::CredentialCriteria *criteria=0) const
std::vector< constxmltooling::Credential * >::size_type | resolve (std::vector< const xmltooling::Credential * > &results, const xmltooling::CredentialCriteria *criteria=0) const
virtual const EntitiesDescriptor * | getEntitiesDescriptor (const XMLCh *name, bool requireValidMetadata=true) const
| Gets the metadata for a given group of entities.
Public Member Functions inherited from opensaml::saml2md::ObservableMetadataProvider
virtual void | addObserver (const Observer *newObserver) const
| Adds a metadata observer.
virtual const Observer * | removeObserver (const Observer *oldObserver) const
| Removes a metadata observer.
Public Member Functions inherited from opensaml::saml2md::MetadataProvider
virtual | ~MetadataProvider ()
| Destructor will delete any installed filters.
virtual const char * | getId () const
| Returns an identifier for the provider for logging/status purposes.
virtual void | addMetadataFilter (MetadataFilter *newFilter)
| Adds a metadata filter to apply to any resolved metadata.
virtual MetadataFilter * | removeMetadataFilter (MetadataFilter *oldFilter)
| Removes a metadata filter.
void | setContext (const MetadataFilterContext *ctx)
| Sets a filtering context object for use by the filtering process.
virtual void | init ()=0
| Should be called after instantiating provider and adding filters, but before performing any lookup operations.
virtual const xmltooling::XMLObject * | getMetadata () const =0
| Gets the entire metadata tree, after the registered filter has been applied.

## Protected Member Functions

| AbstractMetadataProvider (const xercesc::DOMElement *e=0, bool deprecationSupport=true)
| Constructor.
virtual void | indexEntity (EntityDescriptor *site, time_t &validUntil, bool replace=false) const
| Loads an entity into the cache for faster lookup.
virtual void | indexGroup (EntitiesDescriptor *group, time_t &validUntil) const
| Loads a group of entities into the cache for faster lookup.
virtual void | unindex (const XMLCh *entityID, bool freeSites=false) const
| Clear a specific entity from the cache.
virtual void | clearDescriptorIndex (bool freeSites=false)
| Clear the cache of known entities and groups.
Protected Member Functions inherited from opensaml::saml2md::ObservableMetadataProvider
| ObservableMetadataProvider (const xercesc::DOMElement *e=0, bool deprecationSupport=true)
| Constructor.
Protected Member Functions inherited from opensaml::saml2md::MetadataProvider
| MetadataProvider (const xercesc::DOMElement *e, bool deprecationSupport=true)
| Constructor.
void | doFilters (const MetadataFilterContext *ctx, xmltooling::XMLObject &xmlObject) const
| Applies any installed filters to a metadata instance.

## Protected Attributes

time_t | m_lastUpdate
| Time of last update for reporting.
xmltooling::KeyInfoResolver * | m_resolver
| Embedded KeyInfoResolver instance.

## Detailed Description

Base class for caching metadata providers.

## Constructor & Destructor Documentation

## AbstractMetadataProvider()

opensaml::saml2md::AbstractMetadataProvider::AbstractMetadataProvider | ( | const xercesc::DOMElement * | e = 0,
|  | bool | deprecationSupport = true )

protected

Constructor.

If a DOM is supplied, a set of default logic will be used to identify and build a KeyInfoResolver plugin and install it into the provider.

The following XML content is supported:

- <KeyInfoResolver> elements with a type attribute

XML namespaces are ignored in the processing of these elements.

Parameters

  e | DOM to supply configuration for provider
  deprecationSupport | true iff deprecated features and settings should be supported

## Member Function Documentation

## clearDescriptorIndex()

virtual void opensaml::saml2md::AbstractMetadataProvider::clearDescriptorIndex | ( | bool | freeSites = false | ) |

protected virtual

Clear the cache of known entities and groups.

Parameters

  freeSites | true iff the objects cached in the site map should be freed.

## emitChangeEvent() [1/2]

void opensaml::saml2md::AbstractMetadataProvider::emitChangeEvent | ( |  | ) | const

virtual

Convenience method for notifying every registered Observer of an event.

Reimplemented from opensaml::saml2md::ObservableMetadataProvider.

## emitChangeEvent() [2/2]

void opensaml::saml2md::AbstractMetadataProvider::emitChangeEvent | ( | const EntityDescriptor & | entity | ) | const

virtual

Convenience method for notifying every registered Observer of an event.

Reimplemented from opensaml::saml2md::ObservableMetadataProvider.

## getEntitiesDescriptor() [1/2]

const EntitiesDescriptor * opensaml::saml2md::AbstractMetadataProvider::getEntitiesDescriptor | ( | const char * | name,
|  | bool | requireValidMetadata = true ) const

virtual

Gets the metadata for a given group of entities.

If a valid group is returned, the resolver will be left in a locked state. The caller MUST unlock the resolver when finished with the group.

Parameters

  name | the name of the group
  requireValidMetadata | indicates whether the metadata for the group must be valid/current

Returns
  the group's metadata or nullptr if there is no metadata or no valid metadata

Implements opensaml::saml2md::MetadataProvider.

## getEntitiesDescriptor() [2/2]

virtual const EntitiesDescriptor * opensaml::saml2md::MetadataProvider::getEntitiesDescriptor | ( | const XMLCh * | name,
|  | bool | requireValidMetadata = true ) const

virtual

Gets the metadata for a given group of entities.

If a valid group is returned, the resolver will be left in a locked state. The caller MUST unlock the resolver when finished with the group.

Parameters

  name | the name of the group
  requireValidMetadata | indicates whether the metadata for the group must be valid/current

Returns
  the group's metadata or nullptr if there is no metadata or no valid metadata

Reimplemented from opensaml::saml2md::MetadataProvider.

## getEntityDescriptor()

std::pair< const EntityDescriptor *, const RoleDescriptor * > opensaml::saml2md::AbstractMetadataProvider::getEntityDescriptor | ( | const Criteria & | criteria | ) | const

virtual

Gets entity metadata based on supplied criteria.

If a valid entity is returned, the provider will be left in a locked state. The caller MUST unlock the provider when finished with the entity.

Parameters

  criteria | lookup criteria

Returns
  the entity's metadata (and optionally a role) or nullptr if there is no qualifying metadata

Implements opensaml::saml2md::MetadataProvider.

## indexEntity()

virtual void opensaml::saml2md::AbstractMetadataProvider::indexEntity | ( | EntityDescriptor * | site,
|  | time_t & | validUntil,
|  | bool | replace = false ) const

protected virtual

Loads an entity into the cache for faster lookup.

This includes processing known reverse lookup strategies for artifacts. The validUntil parameter will contain the smallest value found on output. This method will not free any objects removed from the cache.

Parameters

  site | entity definition
  validUntil | maximum expiration time of the entity definition
  replace | true iff existing entries for the same entity should be cleared/replaced

## indexGroup()

virtual void opensaml::saml2md::AbstractMetadataProvider::indexGroup | ( | EntitiesDescriptor * | group,
|  | time_t & | validUntil ) const

protected virtual

Loads a group of entities into the cache for faster lookup.

The validUntil parameter will contain the smallest value found on output.

Parameters

  group | group definition
  validUntil | maximum expiration time of the group definition

## outputStatus()

void opensaml::saml2md::AbstractMetadataProvider::outputStatus | ( | std::ostream & | os | ) | const

virtual

Generate an XML representation of the provider's status.

The XML must be well-formed, but is otherwise arbitrary.

Parameters

  os | stream to write status information to

Reimplemented from opensaml::saml2md::MetadataProvider.

## unindex()

virtual void opensaml::saml2md::AbstractMetadataProvider::unindex | ( | const XMLCh * | entityID,
|  | bool | freeSites = false ) const

protected virtual

Clear a specific entity from the cache.

Parameters

  entityID | the ID of the entity to remove
  freeSites | true iff the objects cached in the site map should be freed.

The documentation for this class was generated from the following file:

- saml/saml2/metadata/AbstractMetadataProvider.h