projects
/
shibboleth
/
cpp-opensaml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Convert context API to use const objects and support chaining provider
[shibboleth/cpp-opensaml.git]
/
saml
/
saml2
/
metadata
/
impl
/
ChainingMetadataProvider.cpp
diff --git
a/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp
b/saml/saml2/metadata/impl/ChainingMetadataProvider.cpp
index
e8dcf15
..
968927e
100644
(file)
--- a/
saml/saml2/metadata/impl/ChainingMetadataProvider.cpp
+++ b/
saml/saml2/metadata/impl/ChainingMetadataProvider.cpp
@@
-67,14
+67,15
@@
namespace opensaml {
Lockable* lock();
void unlock();
Lockable* lock();
void unlock();
+ void setContext(const MetadataFilterContext*);
void init();
void init();
- void outputStatus(ostream&
os
) const;
+ void outputStatus(ostream&) const;
const XMLObject* getMetadata() const;
const XMLObject* getMetadata() const;
- const EntitiesDescriptor* getEntitiesDescriptor(const char*
name
, bool requireValidMetadata=true) const;
- pair<const EntityDescriptor*,const RoleDescriptor*> getEntityDescriptor(const Criteria&
criteria
) const;
+ const EntitiesDescriptor* getEntitiesDescriptor(const char*, bool requireValidMetadata=true) const;
+ pair<const EntityDescriptor*,const RoleDescriptor*> getEntityDescriptor(const Criteria&) const;
const Credential* resolve(const CredentialCriteria* criteria=nullptr) const;
const Credential* resolve(const CredentialCriteria* criteria=nullptr) const;
- vector<const Credential*>::size_type resolve(vector<const Credential*>&
results
, const CredentialCriteria* criteria=nullptr) const;
+ vector<const Credential*>::size_type resolve(vector<const Credential*>&, const CredentialCriteria* criteria=nullptr) const;
string getCacheTag() const {
Lock lock(m_trackerLock);
string getCacheTag() const {
Lock lock(m_trackerLock);
@@
-199,6
+200,9
@@
ChainingMetadataProvider::ChainingMetadataProvider(const DOMElement* e)
m_log.error("error building MetadataProvider: %s", ex.what());
}
}
m_log.error("error building MetadataProvider: %s", ex.what());
}
}
+ else {
+ m_log.error("MetadataProvider element missing type attribute");
+ }
e = XMLHelper::getNextSiblingElement(e, _MetadataProvider);
}
}
e = XMLHelper::getNextSiblingElement(e, _MetadataProvider);
}
}
@@
-208,6
+212,11
@@
ChainingMetadataProvider::~ChainingMetadataProvider()
for_each(m_trackers.begin(), m_trackers.end(), xmltooling::cleanup<tracker_t>());
}
for_each(m_trackers.begin(), m_trackers.end(), xmltooling::cleanup<tracker_t>());
}
+void ChainingMetadataProvider::setContext(const MetadataFilterContext* ctx)
+{
+ for_each(m_providers.begin(), m_providers.end(), boost::bind(&MetadataProvider::setContext, _1, ctx));
+}
+
void ChainingMetadataProvider::init()
{
for (ptr_vector<MetadataProvider>::iterator i = m_providers.begin(); i != m_providers.end(); ++i) {
void ChainingMetadataProvider::init()
{
for (ptr_vector<MetadataProvider>::iterator i = m_providers.begin(); i != m_providers.end(); ++i) {
@@
-269,7
+278,7
@@
const EntitiesDescriptor* ChainingMetadataProvider::getEntitiesDescriptor(const
const EntitiesDescriptor* cur = nullptr;
for (ptr_vector<MetadataProvider>::iterator i = m_providers.begin(); i != m_providers.end(); ++i) {
tracker->lock_if(&(*i));
const EntitiesDescriptor* cur = nullptr;
for (ptr_vector<MetadataProvider>::iterator i = m_providers.begin(); i != m_providers.end(); ++i) {
tracker->lock_if(&(*i));
- if (
cur=i->getEntitiesDescriptor(name,requireValidMetadata
)) {
+ if (
(cur = i->getEntitiesDescriptor(name,requireValidMetadata)
)) {
// Are we using a first match policy?
if (m_firstMatch) {
// Save locked provider.
// Are we using a first match policy?
if (m_firstMatch) {
// Save locked provider.