From: Scott Cantor Date: Tue, 7 Apr 2009 17:08:30 +0000 (+0000) Subject: Wrap schema validator errors with a generic message. X-Git-Tag: 2.2.0~13 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=commitdiff_plain;h=384f649a7ef352f15223417de3167bd67224bb00 Wrap schema validator errors with a generic message. --- diff --git a/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp b/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp index 254e62e..a11f5b9 100644 --- a/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp +++ b/saml/saml2/metadata/impl/DynamicMetadataProvider.cpp @@ -112,9 +112,17 @@ pair DynamicMetadataProvider::get } } + if (!m_validate) { + try { + SchemaValidators.validate(entity2.get()); + } + catch (exception& ex) { + log.error("metadata intance failed manual schema validation checking: ", ex.what()); + throw MetadataException("Metadata instance failed manual schema validation checking."); + } + } + // Filter it, which may throw. - if (!m_validate) - SchemaValidators.validate(entity2.get()); doFilters(*entity2.get()); time_t now = time(NULL); diff --git a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp index bc24ed8..8214e3a 100644 --- a/saml/saml2/metadata/impl/XMLMetadataProvider.cpp +++ b/saml/saml2/metadata/impl/XMLMetadataProvider.cpp @@ -102,8 +102,15 @@ pair XMLMetadataProvider::load() ); // Preprocess the metadata. - if (!m_validate) - SchemaValidators.validate(xmlObject.get()); + if (!m_validate) { + try { + SchemaValidators.validate(xmlObject.get()); + } + catch (exception& ex) { + m_log.error("metadata intance failed manual schema validation checking: ", ex.what()); + throw MetadataException("Metadata instance failed manual schema validation checking."); + } + } doFilters(*xmlObject.get()); xmlObject->releaseThisAndChildrenDOM(); xmlObject->setDocument(NULL);