*/
/**
- * @file saml/security/ChainingMetadataProvider.h
+ * @file saml/saml2/metadata/ChainingMetadataProvider.h
*
* MetadataProvider that uses multiple providers in sequence.
*/
#define __saml_chainmeta_h__
#include <saml/saml2/metadata/ObservableMetadataProvider.h>
+#include <xmltooling/logging.h>
#include <xmltooling/util/Threads.h>
namespace opensaml {
namespace saml2md {
-
+
+#if defined (_MSC_VER)
+ #pragma warning( push )
+ #pragma warning( disable : 4251 )
+#endif
+
/**
* MetadataProvider that uses multiple providers in sequence.
*/
*
* @param e DOM to supply configuration for provider
*/
- ChainingMetadataProvider(const DOMElement* e=NULL);
+ ChainingMetadataProvider(const xercesc::DOMElement* e=NULL);
/**
* Destructor will delete any embedded engines.
return NULL;
}
+ using MetadataProvider::getEntityDescriptor;
+ using MetadataProvider::getEntitiesDescriptor;
+
xmltooling::Lockable* lock();
void unlock();
void init();
- const xmlsignature::KeyResolver* getKeyResolver() const;
const xmltooling::XMLObject* getMetadata() const;
const EntitiesDescriptor* getEntitiesDescriptor(const char* name, bool requireValidMetadata=true) const;
- const EntityDescriptor* getEntityDescriptor(const char* id, bool requireValidMetadata=true) const;
- const EntityDescriptor* getEntityDescriptor(const SAMLArtifact* artifact) const;
- void onEvent(MetadataProvider& provider);
+ std::pair<const EntityDescriptor*,const RoleDescriptor*> getEntityDescriptor(const Criteria& criteria) const;
+ void onEvent(const ObservableMetadataProvider& provider) const;
+ const xmltooling::Credential* resolve(const xmltooling::CredentialCriteria* criteria=NULL) const;
+ std::vector<const xmltooling::Credential*>::size_type resolve(
+ std::vector<const xmltooling::Credential*>& results, const xmltooling::CredentialCriteria* criteria=NULL
+ ) const;
+
private:
+ bool m_firstMatch;
xmltooling::ThreadKey* m_tlsKey;
std::vector<MetadataProvider*> m_providers;
+ xmltooling::logging::Category& m_log;
};
- };
+
+#if defined (_MSC_VER)
+ #pragma warning( pop )
+#endif
+
+ };
};
#endif /* __saml_chainmeta_h__ */