Wrap schema validator errors with a generic message.
authorScott Cantor <cantor.2@osu.edu>
Tue, 7 Apr 2009 17:08:30 +0000 (17:08 +0000)
committerScott Cantor <cantor.2@osu.edu>
Tue, 7 Apr 2009 17:08:30 +0000 (17:08 +0000)
saml/saml2/metadata/impl/DynamicMetadataProvider.cpp
saml/saml2/metadata/impl/XMLMetadataProvider.cpp

index 254e62e..a11f5b9 100644 (file)
@@ -112,9 +112,17 @@ pair<const EntityDescriptor*,const RoleDescriptor*> 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);
index bc24ed8..8214e3a 100644 (file)
@@ -102,8 +102,15 @@ pair<bool,DOMElement*> 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);