Base class for caching metadata providers. More...
#include <saml/saml2/metadata/AbstractMetadataProvider.h>
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=nullptr) const |
std::vector< const xmltooling::Credential * > ::size_type | resolve (std::vector< const xmltooling::Credential * > &results, const xmltooling::CredentialCriteria *criteria=nullptr) const |
Protected Member Functions | |
AbstractMetadataProvider (const xercesc::DOMElement *e=nullptr) | |
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 | index (EntityDescriptor *site, time_t validUntil, bool replace=false) const |
virtual void | index (EntitiesDescriptor *group, time_t validUntil) const |
virtual void | clearDescriptorIndex (bool freeSites=false) |
Clear the cache of known entities and groups. | |
Protected Attributes | |
time_t | m_lastUpdate |
Time of last update for reporting. | |
xmltooling::KeyInfoResolver * | m_resolver |
Embedded KeyInfoResolver instance. |
Base class for caching metadata providers.
opensaml::saml2md::AbstractMetadataProvider::AbstractMetadataProvider | ( | const xercesc::DOMElement * | e = nullptr |
) | [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:
XML namespaces are ignored in the processing of these elements.
e | DOM to supply configuration for provider |
virtual void opensaml::saml2md::AbstractMetadataProvider::clearDescriptorIndex | ( | bool | freeSites = false |
) | [protected, virtual] |
Clear the cache of known entities and groups.
freeSites | true iff the objects cached in the site map should be freed. |
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.
name | the name of the group | |
requireValidMetadata | indicates whether the metadata for the group must be valid/current |
Implements opensaml::saml2md::MetadataProvider.
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.
criteria | lookup criteria |
Implements opensaml::saml2md::MetadataProvider.
Reimplemented in opensaml::saml2md::DynamicMetadataProvider.
virtual void opensaml::saml2md::AbstractMetadataProvider::index | ( | EntitiesDescriptor * | group, | |
time_t | validUntil | |||
) | const [protected, virtual] |
group | group definition | |
validUntil | maximum expiration time of the group definition |
virtual void opensaml::saml2md::AbstractMetadataProvider::index | ( | EntityDescriptor * | site, | |
time_t | validUntil, | |||
bool | replace = false | |||
) | const [protected, virtual] |
This includes processing known reverse lookup strategies for artifacts.
site | entity definition | |
validUntil | maximum expiration time of the entity definition | |
replace | true iff existing entries for the same entity should be cleared/replaced |
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.
site | entity definition | |
validUntil | maximum expiration time of the entity definition | |
replace | true iff existing entries for the same entity should be cleared/replaced |
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.
group | group definition | |
validUntil | maximum expiration time of the group definition |
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.
os | stream to write status information to |
Reimplemented from opensaml::saml2md::MetadataProvider.
time_t opensaml::saml2md::AbstractMetadataProvider::m_lastUpdate [mutable, protected] |
Time of last update for reporting.
xmltooling::KeyInfoResolver* opensaml::saml2md::AbstractMetadataProvider::m_resolver [protected] |
Embedded KeyInfoResolver instance.