Apply manual validators even when schema was used.
authorScott Cantor <cantor.2@osu.edu>
Thu, 13 Aug 2009 18:44:45 +0000 (18:44 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 13 Aug 2009 18:44:45 +0000 (18:44 +0000)
saml/saml2/metadata/impl/DynamicMetadataProvider.cpp
saml/saml2/metadata/impl/XMLMetadataProvider.cpp

index 47106ec..44fdeac 100644 (file)
@@ -112,14 +112,13 @@ 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: %s", ex.what());
-                throw MetadataException("Metadata instance failed manual schema validation checking.");
-            }
+        // Preprocess the metadata (even if we schema-validated).
+        try {
+            SchemaValidators.validate(entity2.get());
+        }
+        catch (exception& ex) {
+            log.error("metadata intance failed manual validation checking: %s", ex.what());
+            throw MetadataException("Metadata instance failed manual validation checking.");
         }
 
         // Filter it, which may throw.
index 1809d3d..0dbc9c7 100644 (file)
@@ -101,16 +101,15 @@ pair<bool,DOMElement*> XMLMetadataProvider::load()
             "Root of metadata instance not recognized: $1", params(1,xmlObject->getElementQName().toString().c_str())
             );
 
-    // 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.");
-        }
+    // Preprocess the metadata (even if we schema-validated).
+    try {
+        SchemaValidators.validate(xmlObject.get());
     }
+    catch (exception& ex) {
+        m_log.error("metadata intance failed manual validation checking: %s", ex.what());
+        throw MetadataException("Metadata instance failed manual validation checking.");
+    }
+
     doFilters(*xmlObject.get());
     xmlObject->releaseThisAndChildrenDOM();
     xmlObject->setDocument(NULL);