X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FXMLMetadataProvider.cpp;h=1809d3dca3c620c7268a5553267ab519d96054c3;hp=ad6ad6813219e8e0021caa263a6cf2dc2c16df5b;hb=9247fd98448d17c495f1d811ac1ba82571f7ef98;hpb=183b02129a96dcfe0d83e7d2e433b6ef509b316e diff --git a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp index ad6ad68..1809d3d 100644 --- a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp +++ b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp @@ -27,6 +27,7 @@ #include #include +#include using namespace opensaml::saml2md; using namespace xmltooling::logging; @@ -101,6 +102,15 @@ pair XMLMetadataProvider::load() ); // Preprocess the metadata. + if (!m_validate) { + try { + SchemaValidators.validate(xmlObject.get()); + } + catch (exception& ex) { + m_log.error("metadata intance failed manual schema validation checking: %s", ex.what()); + throw MetadataException("Metadata instance failed manual schema validation checking."); + } + } doFilters(*xmlObject.get()); xmlObject->releaseThisAndChildrenDOM(); xmlObject->setDocument(NULL);