[cpp-sp COMMIT] /branches/REL_2/shibsp/metadata/DynamicMetadataProvider.cpp

noreply at shibboleth.net noreply at shibboleth.net
Thu Nov 21 10:03:16 EST 2013


Author: scantor
Date: Thu Nov 21 10:03:16 2013
New Revision: 3876

URL: http://svn.shibboleth.net/view/cpp-sp?rev=3876&view=rev
Log:
https://issues.shibboleth.net/jira/browse/SSPCPP-598

Modified:
    branches/REL_2/shibsp/metadata/DynamicMetadataProvider.cpp

Modified: branches/REL_2/shibsp/metadata/DynamicMetadataProvider.cpp
URL: http://svn.shibboleth.net/view/cpp-sp/branches/REL_2/shibsp/metadata/DynamicMetadataProvider.cpp?rev=3876&r1=3875&r2=3876&view=diff
==============================================================================
--- branches/REL_2/shibsp/metadata/DynamicMetadataProvider.cpp (original)
+++ branches/REL_2/shibsp/metadata/DynamicMetadataProvider.cpp Thu Nov 21 10:03:16 2013
@@ -40,6 +40,7 @@
 #include <saml/binding/SAMLArtifact.h>
 #include <saml/saml2/metadata/Metadata.h>
 #include <saml/saml2/metadata/DynamicMetadataProvider.h>
+
 #include <xmltooling/logging.h>
 #include <xmltooling/XMLToolingConfig.h>
 #include <xmltooling/security/Credential.h>
@@ -300,6 +301,12 @@
         // Wrap the document for now.
         XercesJanitor<DOMDocument> docjanitor(doc);
 
+        // Check root element.
+        if (!doc->getDocumentElement() || !XMLHelper::isNodeNamed(doc->getDocumentElement(),
+                samlconstants::SAML20MD_NS, saml2md::EntityDescriptor::LOCAL_NAME)) {
+            throw saml2md::MetadataException("Root of metadata instance was not an EntityDescriptor");
+        }
+
         // Unmarshall objects, binding the document.
         auto_ptr<XMLObject> xmlObject(XMLObjectBuilder::buildOneFromElement(doc->getDocumentElement(), true));
         docjanitor.release();



More information about the commits mailing list