Metadata filters, filter auto-registration, and unit tests.
[shibboleth/cpp-opensaml.git] / saml / SAMLConfig.cpp
index 5695db8..d17142b 100644 (file)
 #include "exceptions.h"
 #include "SAMLConfig.h"
 #include "saml1/core/Assertions.h"
+#include "saml1/core/Protocols.h"
+#include "saml2/core/Protocols.h"
+#include "saml2/metadata/Metadata.h"
+#include "saml2/metadata/MetadataProvider.h"
 #include "util/SAMLConstants.h"
 
 #include <xmltooling/XMLToolingConfig.h>
@@ -70,6 +74,12 @@ bool SAMLInternalConfig::init()
     log.debug("XMLTooling library initialized");
 
     saml1::registerAssertionClasses();
+    saml1p::registerProtocolClasses();
+    saml2::registerAssertionClasses();
+    saml2p::registerProtocolClasses();
+    saml2md::registerMetadataClasses();
+    saml2md::registerMetadataProviders();
+    saml2md::registerMetadataFilters();
 
     log.info("library initialization complete");
     return true;
@@ -80,6 +90,12 @@ void SAMLInternalConfig::term()
 #ifdef _DEBUG
     xmltooling::NDC ndc("term");
 #endif
+
+    saml1::AssertionSchemaValidators.destroyValidators();
+    saml1p::ProtocolSchemaValidators.destroyValidators();
+    saml2::AssertionSchemaValidators.destroyValidators();
+    saml2md::MetadataSchemaValidators.destroyValidators();
+
     XMLToolingConfig::getConfig().term();
     Category::getInstance(SAML_LOGCAT".SAMLConfig").info("library shutdown complete");
 }