From 384f649a7ef352f15223417de3167bd67224bb00 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Tue, 7 Apr 2009 17:08:30 +0000 Subject: [PATCH] Wrap schema validator errors with a generic message. --- saml/saml2/metadata/impl/DynamicMetadataProvider.cpp | 12 ++++++++++-- saml/saml2/metadata/impl/XMLMetadataProvider.cpp | 11 +++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) 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); -- 2.1.4