[cpp-sp] branch main updated: Remove SAMLConstants and start setting up unit testing.

Scott Cantor cantor.2 at osu.edu
Tue Nov 5 16:59:39 UTC 2024


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository cpp-sp.

View the commit online:
http://git.shibboleth.net/view/?p=cpp-sp.git;a=commit;h=86aff219ed6bec467532f9270834e225c049cfc0

The following commit(s) were added to refs/heads/main by this push:
     new 86aff219 Remove SAMLConstants and start setting up unit testing.
86aff219 is described below

commit 86aff219ed6bec467532f9270834e225c049cfc0
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Nov 5 11:59:35 2024 -0500

    Remove SAMLConstants and start setting up unit testing.
---
 Makefile.am                                        |   2 +-
 Projects/vc15/shibsp/shibsp.vcxproj                |   2 -
 configure.ac                                       |   8 +-
 shibsp/Makefile.am                                 |   6 -
 shibsp/handler/AbstractHandler.h                   |  11 -
 shibsp/handler/impl/AbstractHandler.cpp            |  18 +-
 shibsp/handler/impl/AdminLogoutInitiator.cpp       |  21 --
 shibsp/handler/impl/SAML2Consumer.cpp              |  69 ------
 shibsp/handler/impl/SAML2Logout.cpp                |  51 -----
 shibsp/handler/impl/SAML2LogoutInitiator.cpp       |  52 +----
 shibsp/handler/impl/SAML2SessionInitiator.cpp      |  58 +----
 shibsp/impl/XMLApplication.cpp                     |   4 +-
 shibsp/impl/XMLServiceProvider.cpp                 |   2 -
 shibsp/lite/SAMLConstants.cpp                      | 237 ---------------------
 shibsp/lite/SAMLConstants.h                        | 174 ---------------
 tests/.gitignore                                   |   4 +
 tests/AgentTestSuite.cpp                           |  23 ++
 tests/Makefile.am                                  |  19 ++
 tests/PropertyTreeTests.cpp                        |  28 +++
 unittests/DynamicMetadataProviderTest.h            | 209 ------------------
 unittests/Makefile.am                              |  47 ----
 unittests/SPTest.h                                 |  75 -------
 unittests/TestApplication.cpp                      | 196 -----------------
 unittests/TestApplication.h                        |  87 --------
 unittests/config/etc/shibboleth/cert.pem           |  16 --
 unittests/config/etc/shibboleth/console.logger     |  11 -
 unittests/config/etc/shibboleth/icpem.pem          |  22 --
 .../config/etc/shibboleth/security-policy.xml      |  33 ---
 unittests/config/var/cache/shibboleth/.gitignore   |   1 -
 .../var/cache/shibboleth/dynamic/gitkeep/.gitkeep  |   1 -
 unittests/data/badSigMDQ.xml                       |   4 -
 unittests/data/chainedFromURL.xml                  |  10 -
 .../df5a20c921bc30c1b76c5a6cec08d074e280de8b.xml   |  91 --------
 unittests/data/fromMDQ.xml                         |   3 -
 unittests/data/idp.shibboleth.net.xml              |  91 --------
 unittests/data/localDynamic.xml                    |   1 -
 unittests/data/templateFromRepo.xml                |   3 -
 37 files changed, 93 insertions(+), 1597 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 53121a22..3bcf4901 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,7 +12,7 @@ DIST_SUBDIRS = \
 	shibsp \
 	apache \
 	fastcgi \
-	unittests
+	tests
 
 pkgconfig_DATA = shibsp.pc
 
diff --git a/Projects/vc15/shibsp/shibsp.vcxproj b/Projects/vc15/shibsp/shibsp.vcxproj
index 813d610f..ae8ad8d9 100644
--- a/Projects/vc15/shibsp/shibsp.vcxproj
+++ b/Projects/vc15/shibsp/shibsp.vcxproj
@@ -243,7 +243,6 @@
     <ClCompile Include="..\..\..\shibsp\handler\impl\SessionHandler.cpp" />
     <ClCompile Include="..\..\..\shibsp\handler\impl\SessionInitiator.cpp" />
     <ClCompile Include="..\..\..\shibsp\handler\impl\StatusHandler.cpp" />
-    <ClCompile Include="..\..\..\shibsp\lite\SAMLConstants.cpp" />
     <ClCompile Include="..\..\..\shibsp\version.cpp" />
   </ItemGroup>
   <ItemGroup>
@@ -287,7 +286,6 @@
     <ClInclude Include="..\..\..\shibsp\handler\LogoutHandler.h" />
     <ClInclude Include="..\..\..\shibsp\handler\RemotedHandler.h" />
     <ClInclude Include="..\..\..\shibsp\handler\SessionInitiator.h" />
-    <ClInclude Include="..\..\..\shibsp\lite\SAMLConstants.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\..\..\shibsp\shibsp.rc">
diff --git a/configure.ac b/configure.ac
index 5068c57a..7a59d2d0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -343,12 +343,8 @@ if test "$WANT_APACHE_24" = "yes" ; then
 fi
 
 # Check for unit test support
-AC_CONFIG_FILES([unittests/Makefile])
-AC_ARG_VAR([CXXTEST], [override the cxxtestgen executable and options])
-AC_CHECK_PROGS([CXXTEST], [cxxtestgen cxxtestgen.pl], [false])
-AC_ARG_VAR([CXXTESTFLAGS], [override the cxxtest compiler flags needed to build tests])
-AM_CONDITIONAL([BUILD_UNITTEST], [test "x${CXXTEST}" != xfalse])
-WANT_SUBDIRS="$WANT_SUBDIRS unittests"
+AC_CONFIG_FILES([tests/Makefile])
+WANT_SUBDIRS="$WANT_SUBDIRS tests"
 
 AC_SUBST(WANT_SUBDIRS)
 
diff --git a/shibsp/Makefile.am b/shibsp/Makefile.am
index 9963a27e..d83bc41e 100644
--- a/shibsp/Makefile.am
+++ b/shibsp/Makefile.am
@@ -8,8 +8,6 @@ attrincludedir = $(includedir)/shibsp/attribute
 
 handincludedir = $(includedir)/shibsp/handler
 
-liteincludedir = $(includedir)/shibsp/lite
-
 remincludedir = $(includedir)/shibsp/remoting
 
 utilincludedir = $(includedir)/shibsp/util
@@ -47,9 +45,6 @@ handinclude_HEADERS = \
 	handler/SecuredHandler.h \
 	handler/SessionInitiator.h
 
-liteinclude_HEADERS = \
-	lite/SAMLConstants.h
-
 reminclude_HEADERS = \
 	remoting/ddf.h \
 	remoting/ListenerService.h
@@ -109,7 +104,6 @@ libshibsp_la_SOURCES = \
 	impl/XMLApplication.cpp \
 	impl/XMLRequestMapper.cpp \
 	impl/XMLServiceProvider.cpp \
-	lite/SAMLConstants.cpp \
 	remoting/impl/ddf.cpp \
 	remoting/impl/ListenerService.cpp \
 	remoting/impl/SocketListener.cpp \
diff --git a/shibsp/handler/AbstractHandler.h b/shibsp/handler/AbstractHandler.h
index cef160f4..3b9bd2e8 100644
--- a/shibsp/handler/AbstractHandler.h
+++ b/shibsp/handler/AbstractHandler.h
@@ -35,17 +35,6 @@
 #include <string>
 #include <xmltooling/logging.h>
 
-#ifndef SHIBSP_LITE
-namespace opensaml {
-    class SAML_API MessageEncoder;
-    namespace saml2md {
-        class SAML_API RoleDescriptor;
-    };
-    namespace saml2p {
-        class SAML_API StatusResponseType;
-    };
-};
-#endif
 
 namespace xmltooling {
     class XMLTOOL_API XMLObject;
diff --git a/shibsp/handler/impl/AbstractHandler.cpp b/shibsp/handler/impl/AbstractHandler.cpp
index 8b0f9159..ec982d6b 100644
--- a/shibsp/handler/impl/AbstractHandler.cpp
+++ b/shibsp/handler/impl/AbstractHandler.cpp
@@ -46,14 +46,10 @@
 #include <xmltooling/util/PathResolver.h>
 #include <xmltooling/util/URLEncoder.h>
 
-
-#include "lite/SAMLConstants.h"
-
 #include <xmltooling/XMLToolingConfig.h>
 #include <xmltooling/util/URLEncoder.h>
 
 using namespace shibsp;
-using namespace samlconstants;
 using namespace xmltooling;
 using namespace xercesc;
 using namespace boost;
@@ -92,12 +88,7 @@ void SHIBSP_API shibsp::registerHandlers()
     SPConfig& conf=SPConfig::getConfig();
 
     conf.AssertionConsumerServiceManager.registerFactory(SAML20_ASSERTION_CONSUMER_SERVICE, SAML2ConsumerFactory);
-    conf.AssertionConsumerServiceManager.registerFactory(SAML20_BINDING_HTTP_POST, SAML2ConsumerFactory);
-    conf.AssertionConsumerServiceManager.registerFactory(SAML20_BINDING_HTTP_POST_SIMPLESIGN, SAML2ConsumerFactory);
-    conf.AssertionConsumerServiceManager.registerFactory(SAML20_BINDING_HTTP_ARTIFACT, SAML2ConsumerFactory);
-    conf.AssertionConsumerServiceManager.registerFactory(SAML20_BINDING_PAOS, SAML2ConsumerFactory);
-
-    conf.HandlerManager.registerFactory(SAML20_BINDING_URI, AssertionLookupFactory);
+ 
     conf.HandlerManager.registerFactory(ATTR_CHECKER_HANDLER, AttributeCheckerFactory);
     conf.HandlerManager.registerFactory(DISCOVERY_FEED_HANDLER, DiscoveryFeedFactory);
     conf.HandlerManager.registerFactory(METADATA_GENERATOR_HANDLER, MetadataGeneratorFactory);
@@ -105,12 +96,7 @@ void SHIBSP_API shibsp::registerHandlers()
     conf.HandlerManager.registerFactory(SESSION_HANDLER, SessionHandlerFactory);
 
     conf.SingleLogoutServiceManager.registerFactory(SAML20_LOGOUT_HANDLER, SAML2LogoutFactory);
-    conf.SingleLogoutServiceManager.registerFactory(SAML20_BINDING_SOAP, SAML2LogoutFactory);
-    conf.SingleLogoutServiceManager.registerFactory(SAML20_BINDING_HTTP_REDIRECT, SAML2LogoutFactory);
-    conf.SingleLogoutServiceManager.registerFactory(SAML20_BINDING_HTTP_POST, SAML2LogoutFactory);
-    conf.SingleLogoutServiceManager.registerFactory(SAML20_BINDING_HTTP_POST_SIMPLESIGN, SAML2LogoutFactory);
-    conf.SingleLogoutServiceManager.registerFactory(SAML20_BINDING_HTTP_ARTIFACT, SAML2LogoutFactory);
-}
+} 
 
 Handler::Handler()
 {
diff --git a/shibsp/handler/impl/AdminLogoutInitiator.cpp b/shibsp/handler/impl/AdminLogoutInitiator.cpp
index 19e1aa25..5a61d8ee 100644
--- a/shibsp/handler/impl/AdminLogoutInitiator.cpp
+++ b/shibsp/handler/impl/AdminLogoutInitiator.cpp
@@ -32,27 +32,6 @@
 #include "handler/SecuredHandler.h"
 #include "handler/LogoutInitiator.h"
 
-#ifndef SHIBSP_LITE
-# include "binding/SOAPClient.h"
-# include "metadata/MetadataProviderCriteria.h"
-# include "security/SecurityPolicy.h"
-# include <boost/algorithm/string.hpp>
-# include <boost/iterator/indirect_iterator.hpp>
-# include <saml/exceptions.h>
-# include <saml/SAMLConfig.h>
-# include <saml/saml2/core/Protocols.h>
-# include <saml/saml2/binding/SAML2SOAPClient.h>
-# include <saml/saml2/metadata/EndpointManager.h>
-# include <saml/saml2/metadata/Metadata.h>
-# include <saml/saml2/metadata/MetadataCredentialCriteria.h>
-using namespace opensaml::saml2;
-using namespace opensaml::saml2p;
-using namespace opensaml::saml2md;
-using namespace opensaml;
-#else
-# include "lite/SAMLConstants.h"
-#endif
-
 using namespace shibsp;
 using namespace xmltooling;
 using namespace boost;
diff --git a/shibsp/handler/impl/SAML2Consumer.cpp b/shibsp/handler/impl/SAML2Consumer.cpp
index 2b877492..5306cf45 100644
--- a/shibsp/handler/impl/SAML2Consumer.cpp
+++ b/shibsp/handler/impl/SAML2Consumer.cpp
@@ -27,34 +27,6 @@
 #include "internal.h"
 #include "handler/AssertionConsumerService.h"
 
-#ifndef SHIBSP_LITE
-# include "Application.h"
-# include "ServiceProvider.h"
-# include "SessionCache.h"
-# include "attribute/resolver/ResolutionContext.h"
-# include <boost/iterator/indirect_iterator.hpp>
-# include <saml/exceptions.h>
-# include <saml/SAMLConfig.h>
-# include <saml/binding/SecurityPolicyRule.h>
-# include <saml/saml2/core/Protocols.h>
-# include <saml/saml2/metadata/Metadata.h>
-# include <saml/saml2/metadata/MetadataCredentialCriteria.h>
-# include <saml/saml2/profile/SAML2AssertionPolicy.h>
-# include <xmltooling/XMLToolingConfig.h>
-# include <xmltooling/io/HTTPRequest.h>
-# include <xmltooling/validation/ValidatorSuite.h>
-using namespace opensaml::saml2;
-using namespace opensaml::saml2p;
-using namespace opensaml::saml2md;
-using namespace opensaml;
-using namespace boost;
-# ifndef min
-#  define min(a,b)            (((a) < (b)) ? (a) : (b))
-# endif
-#else
-# include "lite/SAMLConstants.h"
-#endif
-
 using namespace shibsp;
 using namespace xmltooling;
 using namespace std;
@@ -71,36 +43,8 @@ namespace shibsp {
     public:
         SAML2Consumer(const DOMElement* e, const char* appId, bool deprecationSupport=true)
             : AssertionConsumerService(e, appId, Category::getInstance(SHIBSP_LOGCAT ".SSO.SAML2"), nullptr, nullptr, deprecationSupport) {
-#ifndef SHIBSP_LITE
-            m_paos = XMLString::equals(getString("Binding").second, samlconstants::SAML20_BINDING_PAOS);
-            if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess))
-                m_ssoRule.reset(SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(BEARER_POLICY_RULE, e, deprecationSupport));
-#endif
         }
         virtual ~SAML2Consumer() {}
-
-#ifndef SHIBSP_LITE
-    private:
-        const char* getProfile() const {
-            return m_paos ? samlconstants::SAML20_PROFILE_SSO_ECP : samlconstants::SAML20_PROFILE_SSO_BROWSER;
-        }
-
-        void implementProtocol(
-            const Application& application,
-            const HTTPRequest& httpRequest,
-            HTTPResponse& httpResponse,
-            SecurityPolicy& policy,
-            const PropertySet*,
-            const XMLObject& xmlObject
-            ) const;
-
-        bool m_paos;
-        scoped_ptr<SecurityPolicyRule> m_ssoRule;
-#else
-        const XMLCh* getProtocolFamily() const {
-            return samlconstants::SAML20P_NS;
-        }
-#endif
     };
 
 #if defined (_MSC_VER)
@@ -111,19 +55,6 @@ namespace shibsp {
     {
         return new SAML2Consumer(p.first, p.second, deprecationSupport);
     }
-
-#ifndef SHIBSP_LITE
-    class SHIBSP_DLLLOCAL _rulenamed : std::unary_function<const SecurityPolicyRule*,bool>
-    {
-    public:
-        _rulenamed(const char* name) : m_name(name) {}
-        bool operator()(const SecurityPolicyRule* rule) const {
-            return rule ? !strcmp(m_name, rule->getType()) : false;
-        }
-    private:
-        const char* m_name;
-    };
-#endif
 };
 
 #ifndef SHIBSP_LITE
diff --git a/shibsp/handler/impl/SAML2Logout.cpp b/shibsp/handler/impl/SAML2Logout.cpp
index 7e40038b..3d6d058e 100644
--- a/shibsp/handler/impl/SAML2Logout.cpp
+++ b/shibsp/handler/impl/SAML2Logout.cpp
@@ -33,29 +33,6 @@
 #include "handler/LogoutHandler.h"
 #include "util/SPConstants.h"
 
-#ifndef SHIBSP_LITE
-# include "SessionCache.h"
-# include "security/SecurityPolicy.h"
-# include "security/SecurityPolicyProvider.h"
-# include "metadata/MetadataProviderCriteria.h"
-# include <fstream>
-# include <boost/algorithm/string.hpp>
-# include <boost/iterator/indirect_iterator.hpp>
-# include <saml/exceptions.h>
-# include <saml/SAMLConfig.h>
-# include <saml/saml2/core/Protocols.h>
-# include <saml/saml2/metadata/EndpointManager.h>
-# include <saml/saml2/metadata/Metadata.h>
-# include <saml/saml2/metadata/MetadataCredentialCriteria.h>
-# include <xmltooling/util/URLEncoder.h>
-using namespace opensaml::saml2;
-using namespace opensaml::saml2p;
-using namespace opensaml::saml2md;
-using namespace opensaml;
-#else
-# include "lite/SAMLConstants.h"
-#endif
-
 #include <boost/scoped_ptr.hpp>
 
 using namespace shibsp;
@@ -79,33 +56,8 @@ namespace shibsp {
         void receive(DDF& in, ostream& out);
         pair<bool,long> run(SPRequest& request, bool isHandler=true) const;
 
-        const XMLCh* getProtocolFamily() const {
-            return samlconstants::SAML20P_NS;
-        }
-
     private:
         pair<bool,long> doRequest(const Application& application, HTTPRequest& httpRequest, HTTPResponse& httpResponse) const;
-
-#ifndef SHIBSP_LITE
-        pair<bool,long> sendResponse(
-            LogoutEvent* logoutEvent,
-            const XMLCh* requestID,
-            const XMLCh* code,
-            const XMLCh* subcode,
-            const char* msg,
-            const char* relayState,
-            const RoleDescriptor* role,
-            const Application& application,
-            HTTPResponse& httpResponse,
-            bool front
-            ) const;
-
-        scoped_ptr<MessageDecoder> m_decoder;
-        vector<string> m_bindings;
-        map< string,boost::shared_ptr<MessageEncoder> > m_encoders;
-        auto_ptr_char m_protocol;
-        bool m_notifyWithoutSession;
-#endif
     };
 
 #if defined (_MSC_VER)
@@ -120,9 +72,6 @@ namespace shibsp {
 
 SAML2Logout::SAML2Logout(const DOMElement* e, const char* appId, bool deprecationSupport)
     : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT ".Logout.SAML2"))
-#ifndef SHIBSP_LITE
-        ,m_protocol(samlconstants::SAML20P_NS)
-#endif
 {
     m_initiator = false;
 #ifndef SHIBSP_LITE
diff --git a/shibsp/handler/impl/SAML2LogoutInitiator.cpp b/shibsp/handler/impl/SAML2LogoutInitiator.cpp
index 1f4495ec..76020197 100644
--- a/shibsp/handler/impl/SAML2LogoutInitiator.cpp
+++ b/shibsp/handler/impl/SAML2LogoutInitiator.cpp
@@ -32,27 +32,6 @@
 #include "handler/AbstractHandler.h"
 #include "handler/LogoutInitiator.h"
 
-#ifndef SHIBSP_LITE
-# include "binding/SOAPClient.h"
-# include "metadata/MetadataProviderCriteria.h"
-# include "security/SecurityPolicy.h"
-# include <boost/algorithm/string.hpp>
-# include <boost/iterator/indirect_iterator.hpp>
-# include <saml/exceptions.h>
-# include <saml/SAMLConfig.h>
-# include <saml/saml2/core/Protocols.h>
-# include <saml/saml2/binding/SAML2SOAPClient.h>
-# include <saml/saml2/metadata/EndpointManager.h>
-# include <saml/saml2/metadata/Metadata.h>
-# include <saml/saml2/metadata/MetadataCredentialCriteria.h>
-using namespace opensaml::saml2;
-using namespace opensaml::saml2p;
-using namespace opensaml::saml2md;
-using namespace opensaml;
-#else
-# include "lite/SAMLConstants.h"
-#endif
-
 using namespace shibsp;
 using namespace xmltooling;
 using namespace boost;
@@ -77,10 +56,6 @@ namespace shibsp {
         void receive(DDF& in, ostream& out);
         pair<bool,long> run(SPRequest& request, bool isHandler=true) const;
 
-        const XMLCh* getProtocolFamily() const {
-            return samlconstants::SAML20P_NS;
-        }
-
     private:
         pair<bool,long> doRequest(
             const Application& application, const HTTPRequest& request, HTTPResponse& httpResponse, Session* session
@@ -88,20 +63,6 @@ namespace shibsp {
 
         string m_appId;
         bool m_deprecationSupport;
-        auto_ptr_char m_protocol;
-#ifndef SHIBSP_LITE
-        auto_ptr<LogoutRequest> buildRequest(
-            const Application& application,
-            const Session& session,
-            const RoleDescriptor& role,
-            const XMLCh* endpoint,
-            const MessageEncoder* encoder=nullptr
-            ) const;
-
-        bool m_async;
-        vector<string> m_bindings;
-        map< string,boost::shared_ptr<MessageEncoder> > m_encoders;
-#endif
     };
 
 #if defined (_MSC_VER)
@@ -116,10 +77,7 @@ namespace shibsp {
 
 SAML2LogoutInitiator::SAML2LogoutInitiator(const DOMElement* e, const char* appId, bool deprecationSupport)
     : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT ".LogoutInitiator.SAML2")),
-        m_appId(appId), m_deprecationSupport(deprecationSupport), m_protocol(samlconstants::SAML20P_NS)
-#ifndef SHIBSP_LITE
-        ,m_async(true)
-#endif
+        m_appId(appId), m_deprecationSupport(deprecationSupport)
 {
     // If Location isn't set, defer initialization until the setParent call.
     pair<bool,const char*> loc = getString("Location");
@@ -199,10 +157,10 @@ pair<bool,long> SAML2LogoutInitiator::run(SPRequest& request, bool isHandler) co
             return make_pair(false, 0L);
 
         // We only handle SAML 2.0 sessions.
-        if (!XMLString::equals(session->getProtocol(), m_protocol.get())) {
-            session->unlock();
-            return make_pair(false, 0L);
-        }
+        //if (!XMLString::equals(session->getProtocol(), m_protocol.get())) {
+        //    session->unlock();
+        //    return make_pair(false, 0L);
+        //}
     }
     catch (const std::exception& ex) {
         m_log.error("error accessing current session: %s", ex.what());
diff --git a/shibsp/handler/impl/SAML2SessionInitiator.cpp b/shibsp/handler/impl/SAML2SessionInitiator.cpp
index 457b21d2..8fce76e2 100644
--- a/shibsp/handler/impl/SAML2SessionInitiator.cpp
+++ b/shibsp/handler/impl/SAML2SessionInitiator.cpp
@@ -33,29 +33,7 @@
 #include "handler/SessionInitiator.h"
 #include "util/SPConstants.h"
 
-#ifndef SHIBSP_LITE
-# include "metadata/MetadataProviderCriteria.h"
-#define BOOST_BIND_GLOBAL_PLACEHOLDERS
-# include <boost/bind.hpp>
-# include <boost/algorithm/string.hpp>
-# include <boost/iterator/indirect_iterator.hpp>
-# include <saml/exceptions.h>
-# include <saml/SAMLConfig.h>
-# include <saml/saml2/core/Protocols.h>
-# include <saml/saml2/metadata/EndpointManager.h>
-# include <saml/saml2/metadata/Metadata.h>
-# include <saml/saml2/metadata/MetadataCredentialCriteria.h>
-# include <saml/util/SAMLConstants.h>
-# include <xmltooling/XMLToolingConfig.h>
-# include <xmltooling/util/ParserPool.h>
-# include <xercesc/util/Base64.hpp>
-using namespace opensaml::saml2;
-using namespace opensaml::saml2p;
-using namespace opensaml::saml2md;
-#else
-# include "lite/SAMLConstants.h"
-# include <xercesc/util/XMLUniDefs.hpp>
-#endif
+#include <xercesc/util/XMLUniDefs.hpp>
 
 #include <boost/scoped_ptr.hpp>
 
@@ -85,9 +63,6 @@ namespace shibsp {
         pair<bool,long> unwrap(SPRequest& request, DDF& out) const;
         pair<bool,long> run(SPRequest& request, string& entityID, bool isHandler=true) const;
 
-        const XMLCh* getProtocolFamily() const {
-            return samlconstants::SAML20P_NS;
-        }
 
     private:
         pair<bool,long> doRequest(
@@ -115,14 +90,7 @@ namespace shibsp {
         bool m_deprecationSupport;
         auto_ptr_char m_paosNS,m_ecpNS;
         auto_ptr_XMLCh m_paosBinding;
-#ifndef SHIBSP_LITE
-        vector<string> m_bindings;
-        map< string,boost::shared_ptr<MessageEncoder> > m_encoders;
-        scoped_ptr<MessageEncoder> m_ecp;
-        scoped_ptr<AuthnRequest> m_requestTemplate;
-#else
         bool m_ecp;
-#endif
     };
 
 #if defined (_MSC_VER)
@@ -148,21 +116,11 @@ namespace shibsp {
 
 SAML2SessionInitiator::SAML2SessionInitiator(const DOMElement* e, const char* appId, bool deprecationSupport)
     : AbstractHandler(e, Category::getInstance(SHIBSP_LOGCAT ".SessionInitiator.SAML2"), &g_SINFilter, this),
-        m_appId(appId), m_deprecationSupport(deprecationSupport),
-        m_paosNS(samlconstants::PAOS_NS), m_ecpNS(samlconstants::SAML20ECP_NS), m_paosBinding(samlconstants::SAML20_BINDING_PAOS)
+        m_appId(appId), m_deprecationSupport(deprecationSupport)
 #ifdef SHIBSP_LITE
         ,m_ecp(false)
 #endif
 {
-#ifndef SHIBSP_LITE
-    if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
-        // Check for a template AuthnRequest to build from.
-        DOMElement* child = XMLHelper::getFirstChildElement(e, samlconstants::SAML20P_NS, AuthnRequest::LOCAL_NAME);
-        if (child)
-            m_requestTemplate.reset(dynamic_cast<AuthnRequest*>(AuthnRequestBuilder::buildOneFromElement(child)));
-    }
-#endif
-
     // If Location isn't set, defer initialization until the setParent call.
     pair<bool,const char*> loc = getString("Location");
     if (loc.first) {
@@ -269,7 +227,7 @@ pair<bool,long> SAML2SessionInitiator::run(SPRequest& request, string& entityID,
             ACS = app.getAssertionConsumerServiceByIndex(atoi(prop.second));
             if (!ACS)
                 request.log(SPRequest::SPWarn, "invalid acsIndex specified in request, using acsIndex property");
-            else if (ECP && !XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_PAOS)) {
+            else if (ECP && !XMLString::equals(ACS->getString("Binding").second, nullptr)) {
                 request.log(SPRequest::SPWarn, "acsIndex in request referenced a non-PAOS ACS, using default ACS location");
                 ACS = nullptr;
             }
@@ -339,7 +297,7 @@ pair<bool,long> SAML2SessionInitiator::run(SPRequest& request, string& entityID,
 
     if (!ACS) {
         if (ECP) {
-            ACS = app.getAssertionConsumerServiceByProtocol(getProtocolFamily(), samlconstants::SAML20_BINDING_PAOS);
+            ACS = app.getAssertionConsumerServiceByProtocol(getProtocolFamily(), nullptr);
             if (!ACS)
                 throw ConfigurationException("Unable to locate PAOS response endpoint.");
         }
@@ -396,7 +354,7 @@ pair<bool,long> SAML2SessionInitiator::run(SPRequest& request, string& entityID,
                 app, &request, request, entityID.c_str(),
                 ix.second,
                 attributeIndex.first ? attributeIndex.second : nullptr,
-                XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_HTTP_ARTIFACT),
+                false,
                 nullptr, nullptr,
                 isPassive, forceAuthn,
                 acClass.first ? acClass.second : nullptr,
@@ -428,7 +386,7 @@ pair<bool,long> SAML2SessionInitiator::run(SPRequest& request, string& entityID,
             app, &request, request, entityID.c_str(),
             nullptr,
             attributeIndex.first ? attributeIndex.second : nullptr,
-            XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_HTTP_ARTIFACT),
+            false,
             ACSloc.c_str(), ACS->getXMLString("Binding").second,
             isPassive, forceAuthn,
             acClass.first ? acClass.second : nullptr,
@@ -477,7 +435,7 @@ pair<bool,long> SAML2SessionInitiator::run(SPRequest& request, string& entityID,
         	ix = ACS->getString("index");
         }
         in.addmember("acsIndex").string(ix.second);
-        if (XMLString::equals(ACS->getString("Binding").second, samlconstants::SAML20_BINDING_HTTP_ARTIFACT))
+        if (false)
             in.addmember("artifact").integer(1);
     }
     else {
@@ -489,7 +447,7 @@ pair<bool,long> SAML2SessionInitiator::run(SPRequest& request, string& entityID,
         in.addmember("acsLocation").string(ACSloc.c_str());
         prop = ACS->getString("Binding");
         in.addmember("acsBinding").string(prop.second);
-        if (XMLString::equals(prop.second, samlconstants::SAML20_BINDING_HTTP_ARTIFACT))
+        if (false)
             in.addmember("artifact").integer(1);
     }
 
diff --git a/shibsp/impl/XMLApplication.cpp b/shibsp/impl/XMLApplication.cpp
index 9ce040b8..304a366e 100644
--- a/shibsp/impl/XMLApplication.cpp
+++ b/shibsp/impl/XMLApplication.cpp
@@ -41,8 +41,6 @@
 #include <xmltooling/util/XMLConstants.h>
 #include <xmltooling/util/XMLHelper.h>
 
-#include "lite/SAMLConstants.h"
-
 using namespace shibsp;
 using namespace xmltooling;
 using namespace boost::algorithm;
@@ -418,7 +416,7 @@ void XMLApplication::doHandlers(const DOMElement* e, Category& log)
             }
             boost::shared_ptr<Handler> exportHandler(
                 conf.HandlerManager.newPlugin(
-                    samlconstants::SAML20_BINDING_URI, pair<const DOMElement*,const char*>(exportElement, getId()), m_deprecationSupport
+                    nullptr, pair<const DOMElement*,const char*>(exportElement, getId()), m_deprecationSupport
                     )
                 );
             m_handlers.push_back(exportHandler);
diff --git a/shibsp/impl/XMLServiceProvider.cpp b/shibsp/impl/XMLServiceProvider.cpp
index 530ab85e..c0c0b8fe 100644
--- a/shibsp/impl/XMLServiceProvider.cpp
+++ b/shibsp/impl/XMLServiceProvider.cpp
@@ -52,8 +52,6 @@
 #include <xmltooling/util/Threads.h>
 #include <xmltooling/util/XMLHelper.h>
 
-#include "lite/SAMLConstants.h"
-
 using namespace shibsp;
 using namespace xmltooling;
 using namespace boost;
diff --git a/shibsp/lite/SAMLConstants.cpp b/shibsp/lite/SAMLConstants.cpp
deleted file mode 100644
index 4caf005c..00000000
--- a/shibsp/lite/SAMLConstants.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- * Licensed to the University Corporation for Advanced Internet
- * Development, Inc. (UCAID) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for
- * additional information regarding copyright ownership.
- *
- * UCAID licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the
- * License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- * either express or implied. See the License for the specific
- * language governing permissions and limitations under the License.
- */
-
-/**
- * SAMLConstants.cpp
- *
- * SAML XML namespace constants.
- */
-
-
-#include "internal.h"
-#include "lite/SAMLConstants.h"
-#include <xercesc/util/XMLUniDefs.hpp>
-
-using namespace xercesc;
-using namespace samlconstants;
-
-const XMLCh samlconstants::PAOS_NS[] = // urn:liberty:paos:2003-08
-{ chLatin_u, chLatin_r, chLatin_n, chColon,
-  chLatin_l, chLatin_i, chLatin_b, chLatin_e, chLatin_r, chLatin_t, chLatin_y, chColon,
-  chLatin_p, chLatin_a, chLatin_o, chLatin_s, chColon,
-  chDigit_2, chDigit_0, chDigit_0, chDigit_3, chDash, chDigit_0, chDigit_8, chNull
-};
-
-const XMLCh samlconstants::PAOS_PREFIX[] = UNICODE_LITERAL_4(p,a,o,s);
-
-const XMLCh samlconstants::SAML20_VERSION[] = // 2.0
-{ chDigit_2, chPeriod, chDigit_0, chNull
-};
-
-const XMLCh samlconstants::SAML20_NS[] = // urn:oasis:names:tc:SAML:2.0:assertion
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_a, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
-};
-
-const XMLCh samlconstants::SAML20P_NS[] = // urn:oasis:names:tc:SAML:2.0:protocol
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_t, chLatin_o, chLatin_c, chLatin_o, chLatin_l, chNull
-};
-
-const XMLCh samlconstants::SAML20MD_NS[] = // urn:oasis:names:tc:SAML:2.0:metadata
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chNull
-};
-
-const XMLCh samlconstants::SAML20AC_NS[] = // urn:oasis:names:tc:SAML:2.0:ac
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_a, chLatin_c, chNull
-};
-
-const XMLCh samlconstants::SAML20_PREFIX[] = UNICODE_LITERAL_4(s,a,m,l);
-
-const XMLCh samlconstants::SAML20P_PREFIX[] = UNICODE_LITERAL_5(s,a,m,l,p);
-
-const XMLCh samlconstants::SAML20MD_PREFIX[] = UNICODE_LITERAL_2(m,d);
-
-const XMLCh samlconstants::SAML20AC_PREFIX[] = UNICODE_LITERAL_2(a,c);
-
-const XMLCh samlconstants::SAML20ECP_NS[] = // urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chLatin_s, chColon,
-  chLatin_S, chLatin_S, chLatin_O, chColon, chLatin_e, chLatin_c, chLatin_p, chNull
-};
-
-const XMLCh samlconstants::SAML20ECP_PREFIX[] = UNICODE_LITERAL_3(e,c,p);
-
-const XMLCh samlconstants::SAML20DCE_NS[] = // urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chLatin_s, chColon,
-  chLatin_a, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chColon,
-  chLatin_D, chLatin_C, chLatin_E, chNull
-};
-
-const XMLCh samlconstants::SAML20DCE_PREFIX[] = UNICODE_LITERAL_3(D,C,E);
-
-const XMLCh samlconstants::SAML20X500_NS[] = // urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chLatin_s, chColon,
-  chLatin_a, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chColon,
-  chLatin_X, chDigit_5, chDigit_0, chDigit_0, chNull
-};
-
-const XMLCh samlconstants::SAML20X500_PREFIX[] = { chLatin_x, chDigit_5, chDigit_0, chDigit_0 };
-
-const XMLCh samlconstants::SAML20XACML_NS[] = // urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chLatin_s, chColon,
-  chLatin_a, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chColon,
-  chLatin_X, chLatin_A, chLatin_C, chLatin_M, chLatin_L, chNull
-};
-
-const XMLCh samlconstants::SAML20XACML_PREFIX[] = UNICODE_LITERAL_9(x,a,c,m,l,p,r,o,f);
-
-const XMLCh samlconstants::SAML1MD_NS[] = // urn:oasis:names:tc:SAML:profiles:v1metadata
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chLatin_s, chColon,
-  chLatin_v, chDigit_1, chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chNull
-};
-
-const XMLCh samlconstants::SAML1MD_PREFIX[] =
-{ chLatin_s, chLatin_a, chLatin_m, chLatin_l, chDigit_1, chLatin_m, chLatin_d, chNull };
-
-const XMLCh samlconstants::SAML10_PROTOCOL_ENUM[] = // urn:oasis:names:tc:SAML:1.0:protocol
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_1, chPeriod, chDigit_0, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_t, chLatin_o, chLatin_c, chLatin_o, chLatin_l, chNull
-};
-
-const XMLCh samlconstants::SAML11_PROTOCOL_ENUM[] = // urn:oasis:names:tc:SAML:1.1:protocol
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_1, chPeriod, chDigit_1, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_t, chLatin_o, chLatin_c, chLatin_o, chLatin_l, chNull
-};
-
-const XMLCh samlconstants::SAML20MD_QUERY_EXT_NS[] = // urn:oasis:names:tc:SAML:metadata:ext:query
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chColon,
-  chLatin_e, chLatin_x, chLatin_t, chColon, chLatin_q, chLatin_u, chLatin_e, chLatin_r, chLatin_y, chNull
-};
-
-const XMLCh samlconstants::SAML20MD_QUERY_EXT_PREFIX[] = UNICODE_LITERAL_5(q,u,e,r,y);
-
-const XMLCh samlconstants::SAML20P_THIRDPARTY_EXT_NS[] = // urn:oasis:names:tc:SAML:protocol:ext:third-party
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_p, chLatin_r, chLatin_o, chLatin_t, chLatin_o, chLatin_c, chLatin_o, chLatin_l, chColon,
-  chLatin_e, chLatin_x, chLatin_t, chColon,
-  chLatin_t, chLatin_h, chLatin_i, chLatin_r, chLatin_d, chDash, chLatin_p, chLatin_a, chLatin_r, chLatin_t, chLatin_y, chNull
-};
-
-const XMLCh samlconstants::SAML20P_THIRDPARTY_EXT_PREFIX[] = UNICODE_LITERAL_6(t,h,r,p,t,y);
-
-const XMLCh samlconstants::SAML20_ATTRIBUTE_EXT_NS[] = // urn:oasis:names:tc:SAML:attribute:ext
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_a, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chColon,
-  chLatin_e, chLatin_x, chLatin_t, chNull
-};
-
-const XMLCh samlconstants::SAML20_ATTRIBUTE_EXT_PREFIX[] = UNICODE_LITERAL_3(e,x,t);
-
-const XMLCh samlconstants::SAML20MD_ALGSUPPORT_NS[] = // urn:oasis:names:tc:SAML:metadata:algsupport
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chColon,
-  chLatin_a, chLatin_l, chLatin_g, chLatin_s, chLatin_u, chLatin_p, chLatin_p, chLatin_o, chLatin_r, chLatin_t, chNull
-};
-
-const XMLCh samlconstants::SAML20MD_ALGSUPPORT_PREFIX[] = UNICODE_LITERAL_3(a,l,g);
-
-const XMLCh samlconstants::SAML20MD_ENTITY_ATTRIBUTE_NS[] = // urn:oasis:names:tc:SAML:metadata:attribute
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chColon,
-  chLatin_a, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chNull
-};
-
-const XMLCh samlconstants::SAML20MD_ENTITY_ATTRIBUTE_PREFIX[] = UNICODE_LITERAL_6(m,d,a,t,t,r);
-
-const XMLCh samlconstants::SAML20MD_UI_NS[] = // urn:oasis:names:tc:SAML:metadata:ui
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon,
-  chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chColon,
-  chLatin_u, chLatin_i, chNull
-};
-
-const XMLCh samlconstants::SAML20MD_UI_PREFIX[] = UNICODE_LITERAL_4(m,d,u,i);
-
-const XMLCh samlconstants::SAML20_DELEGATION_CONDITION_NS[] = // urn:oasis:names:tc:SAML:2.0:conditions:delegation
-{ chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
-  chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
-  chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
-  chLatin_c, chLatin_o, chLatin_n, chLatin_d, chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chColon,
-  chLatin_d, chLatin_e, chLatin_l, chLatin_e, chLatin_g, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
-};
-
-const XMLCh samlconstants::SAML20_DELEGATION_CONDITION_PREFIX[] = UNICODE_LITERAL_3(d,e,l);
-
-const char samlconstants::SAML20_BINDING_SOAP[] = "urn:oasis:names:tc:SAML:2.0:bindings:SOAP";
-
-const char samlconstants::SAML20_BINDING_PAOS[] = "urn:oasis:names:tc:SAML:2.0:bindings:PAOS";
-
-const char samlconstants::SAML20_BINDING_URI[] = "urn:oasis:names:tc:SAML:2.0:bindings:URI";
-
-const char samlconstants::SAML20_BINDING_HTTP_ARTIFACT[] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact";
-
-const char samlconstants::SAML20_BINDING_HTTP_POST[] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST";
-
-const char samlconstants::SAML20_BINDING_HTTP_POST_SIMPLESIGN[] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign";
-
-const char samlconstants::SAML20_BINDING_HTTP_REDIRECT[] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect";
-
-const char samlconstants::SAML20_BINDING_URL_ENCODING_DEFLATE[] = "urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE";
diff --git a/shibsp/lite/SAMLConstants.h b/shibsp/lite/SAMLConstants.h
deleted file mode 100644
index d2120414..00000000
--- a/shibsp/lite/SAMLConstants.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * Licensed to the University Corporation for Advanced Internet
- * Development, Inc. (UCAID) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for
- * additional information regarding copyright ownership.
- *
- * UCAID licenses this file to you under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the
- * License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- * either express or implied. See the License for the specific
- * language governing permissions and limitations under the License.
- */
-
-/**
- * @file shibsp/lite/SAMLConstants.h
- *
- * SAML XML namespace constants.
- */
-
-#ifndef __shibsp_xmlconstants_h__
-#define __shibsp_xmlconstants_h__
-
-#include <shibsp/base.h>
-#include <xercesc/util/XercesDefs.hpp>
-
-/**
- * SAML related constants.
- */
-namespace samlconstants {
-
-    /**  Liberty PAOS XML Namespace ("urn:liberty:paos:2003-08") */
-    extern SHIBSP_API const XMLCh PAOS_NS[];
-
-    /**  Liberty PAOS QName prefix ("paos") */
-    extern SHIBSP_API const XMLCh PAOS_PREFIX[];
-
-    /**  SAML 2.0 Version ("2.0") */
-    extern SHIBSP_API const XMLCh SAML20_VERSION[];
-
-    /**  SAML 2.0 Assertion XML namespace ("urn:oasis:names:tc:SAML:2.0:assertion") */
-    extern SHIBSP_API const XMLCh SAML20_NS[];
-
-    /**  SAML 2.0 Protocol XML namespace ("urn:oasis:names:tc:SAML:2.0:protocol") */
-    extern SHIBSP_API const XMLCh SAML20P_NS[];
-
-    /**  SAML 2.0 Metadata XML namespace ("urn:oasis:names:tc:SAML:2.0:metadata") */
-    extern SHIBSP_API const XMLCh SAML20MD_NS[];
-
-    /**  SAML 2.0 AuthnContext XML namespace ("urn:oasis:names:tc:SAML:2.0:ac") */
-    extern SHIBSP_API const XMLCh SAML20AC_NS[];
-
-    /** SAML 2.0 Assertion QName prefix ("saml") */
-    extern SHIBSP_API const XMLCh SAML20_PREFIX[];
-
-    /** SAML 2.0 Protocol QName prefix ("samlp") */
-    extern SHIBSP_API const XMLCh SAML20P_PREFIX[];
-
-    /** SAML 2.0 Metadata QName prefix ("md") */
-    extern SHIBSP_API const XMLCh SAML20MD_PREFIX[];
-
-    /** SAML 2.0 AuthnContext QName prefix ("ac") */
-    extern SHIBSP_API const XMLCh SAML20AC_PREFIX[];
-
-    /** SAML 2.0 Enhanced Client/Proxy SSO Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp") */
-    extern SHIBSP_API const XMLCh SAML20ECP_NS[];
-
-    /** SAML 2.0 Enhanced Client/Proxy SSO Profile QName prefix ("ecp") */
-    extern SHIBSP_API const XMLCh SAML20ECP_PREFIX[];
-
-    /** SAML 2.0 DCE PAC Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE") */
-    extern SHIBSP_API const XMLCh SAML20DCE_NS[];
-
-    /** SAML 2.0 DCE PAC Attribute Profile QName prefix ("DCE") */
-    extern SHIBSP_API const XMLCh SAML20DCE_PREFIX[];
-
-    /** SAML 2.0 X.500 Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500") */
-    extern SHIBSP_API const XMLCh SAML20X500_NS[];
-
-    /** SAML 2.0 X.500 Attribute Profile QName prefix ("x500") */
-    extern SHIBSP_API const XMLCh SAML20X500_PREFIX[];
-
-    /** SAML 2.0 XACML Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML") */
-    extern SHIBSP_API const XMLCh SAML20XACML_NS[];
-
-    /** SAML 2.0 XACML Attribute Profile QName prefix ("xacmlprof") */
-    extern SHIBSP_API const XMLCh SAML20XACML_PREFIX[];
-
-    /** SAML 1.x Metadata Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:v1metadata") */
-    extern SHIBSP_API const XMLCh SAML1MD_NS[];
-
-    /** SAML 1.x Metadata Profile QName prefix ("saml1md") */
-    extern SHIBSP_API const XMLCh SAML1MD_PREFIX[];
-
-    /** SAML 1.0 Protocol Enumeration constant ("urn:oasis:names:tc:SAML:1.0:protocol") */
-    extern SHIBSP_API const XMLCh SAML10_PROTOCOL_ENUM[];
-
-    /** SAML 1.1 Protocol Enumeration constant ("urn:oasis:names:tc:SAML:1.1:protocol") */
-    extern SHIBSP_API const XMLCh SAML11_PROTOCOL_ENUM[];
-
-    /** SAML Query Requester Metadata Extension XML Namespace ("urn:oasis:names:tc:SAML:metadata:ext:query") */
-    extern SHIBSP_API const XMLCh SAML20MD_QUERY_EXT_NS[];
-
-    /** SAML Query Requester Metadata Extension QName prefix ("query") */
-    extern SHIBSP_API const XMLCh SAML20MD_QUERY_EXT_PREFIX[];
-
-    /** SAML Third-Party Request Protocol Extension XML Namespace ("urn:oasis:names:tc:SAML:protocol:ext:third-party") */
-    extern SHIBSP_API const XMLCh SAML20P_THIRDPARTY_EXT_NS[];
-
-    /** SAML Third-Party Request Protocol Extension QName prefix ("thrpty") */
-    extern SHIBSP_API const XMLCh SAML20P_THIRDPARTY_EXT_PREFIX[];
-
-    /** SAML Attribute Extension XML Namespace ("urn:oasis:names:tc:SAML:attribute:ext") */
-    extern SHIBSP_API const XMLCh SAML20_ATTRIBUTE_EXT_NS[];
-
-    /** SAML Attribute Extension QName prefix ("ext") */
-    extern SHIBSP_API const XMLCh SAML20_ATTRIBUTE_EXT_PREFIX[];
-
-    /** SAML Metadata Extension for Algorithm Support XML Namespace ("urn:oasis:names:tc:SAML:metadata:algsupport") */
-    extern SHIBSP_API const XMLCh SAML20MD_ALGSUPPORT_NS[];
-
-    /** SAML Metadata Extension for Algorithm Support QName prefix ("alg") */
-    extern SHIBSP_API const XMLCh SAML20MD_ALGSUPPORT_PREFIX[];
-
-    /** SAML Metadata Extension for Entity Attributes XML Namespace ("urn:oasis:names:tc:SAML:metadata:attribute") */
-    extern SHIBSP_API const XMLCh SAML20MD_ENTITY_ATTRIBUTE_NS[];
-
-    /** SAML Metadata Extension for Entity Attributes QName prefix ("mdattr") */
-    extern SHIBSP_API const XMLCh SAML20MD_ENTITY_ATTRIBUTE_PREFIX[];
-
-    /** SAML Metadata Extension for Discovery and Login UI XML Namespace ("urn:oasis:names:tc:SAML:metadata:ui") */
-    extern SHIBSP_API const XMLCh SAML20MD_UI_NS[];
-
-    /** SAML Metadata Extension for Discovery and Login UI QName prefix ("mdui") */
-    extern SHIBSP_API const XMLCh SAML20MD_UI_PREFIX[];
-
-    /** SAML Condition for Delegation Restriction XML Namespace ("urn:oasis:names:tc:SAML:2.0:conditions:delegation") */
-    extern SHIBSP_API const XMLCh SAML20_DELEGATION_CONDITION_NS[];
-
-    /** SAML Condition for Delegation Restriction QName prefix ("del") */
-    extern SHIBSP_API const XMLCh SAML20_DELEGATION_CONDITION_PREFIX[];
-
-    /** SAML 2.0 SOAP binding ("urn:oasis:names:tc:SAML:2.0:bindings:SOAP") */
-    extern SHIBSP_API const char SAML20_BINDING_SOAP[];
-
-    /** SAML 2.0 PAOS binding ("urn:oasis:names:tc:SAML:2.0:bindings:PAOS") */
-    extern SHIBSP_API const char SAML20_BINDING_PAOS[];
-
-    /** SAML 2.0 URI binding ("urn:oasis:names:tc:SAML:2.0:bindings:URI") */
-    extern SHIBSP_API const char SAML20_BINDING_URI[];
-
-    /** SAML 2.0 HTTP-Artifact binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact") */
-    extern SHIBSP_API const char SAML20_BINDING_HTTP_ARTIFACT[];
-
-    /** SAML 2.0 HTTP-POST binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST") */
-    extern SHIBSP_API const char SAML20_BINDING_HTTP_POST[];
-
-    /** SAML 2.0 HTTP-POST-SimpleSign binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign") */
-    extern SHIBSP_API const char SAML20_BINDING_HTTP_POST_SIMPLESIGN[];
-
-    /** SAML 2.0 HTTP-Redirect binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect") */
-    extern SHIBSP_API const char SAML20_BINDING_HTTP_REDIRECT[];
-
-    /** SAML 2.0 HTTP-Redirect DEFLATE URL encoding ("urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE") */
-    extern SHIBSP_API const char SAML20_BINDING_URL_ENCODING_DEFLATE[];
-};
-
-#endif /* __shibsp_xmlconstants_h__ */
diff --git a/tests/.gitignore b/tests/.gitignore
new file mode 100644
index 00000000..dc29b04d
--- /dev/null
+++ b/tests/.gitignore
@@ -0,0 +1,4 @@
+shibsptest
+shibsptest.log
+shibsptest.trs
+test-suite.log
diff --git a/tests/AgentTestSuite.cpp b/tests/AgentTestSuite.cpp
new file mode 100644
index 00000000..2345f6a7
--- /dev/null
+++ b/tests/AgentTestSuite.cpp
@@ -0,0 +1,23 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * AgentTestSuite.cpp
+ *
+ * Master test suite driver for unit tests.
+ */
+
+#define BOOST_TEST_MODULE Shibboleth Agent Test Suite
+#include <boost/test/included/unit_test.hpp>
+
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 00000000..091d3763
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,19 @@
+AUTOMAKE_OPTIONS = foreign subdir-objects
+
+TESTS = shibsptest
+check_PROGRAMS = shibsptest
+
+shibsptest_CPPFLAGS = \
+	$(BOOST_CPPFLAGS)
+
+shibsptest_CXXFLAGS = \
+	$(AM_CXXFLAGS)
+
+shibsptest_SOURCES = \
+	AgentTestSuite.cpp \
+	PropertyTreeTests.cpp
+
+shibsptest_LDADD = \
+    $(top_builddir)/shibsp/libshibsp.la
+
+EXTRA_DIST = data
diff --git a/tests/PropertyTreeTests.cpp b/tests/PropertyTreeTests.cpp
new file mode 100644
index 00000000..b74c27d3
--- /dev/null
+++ b/tests/PropertyTreeTests.cpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * PropertyTreeTests.cpp
+ *
+ * Unit tests for property tree usage.
+ */
+
+#include <boost/test/unit_test.hpp>
+
+BOOST_AUTO_TEST_CASE(test1)
+{
+    int i = 2;
+    BOOST_CHECK( i*i == 1 );
+}
+
diff --git a/unittests/DynamicMetadataProviderTest.h b/unittests/DynamicMetadataProviderTest.h
deleted file mode 100644
index 25a42d1c..00000000
--- a/unittests/DynamicMetadataProviderTest.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/**
-* Licensed to the University Corporation for Advanced Internet
-* Development, Inc. (UCAID) under one or more contributor license
-* agreements. See the NOTICE file distributed with this work for
-* additional information regarding copyright ownership.
-*
-* UCAID licenses this file to you under the Apache License,
-* Version 2.0 (the "License"); you may not use this file except
-* in compliance with the License. You may obtain a copy of the
-* License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-* either express or implied. See the License for the specific
-* language governing permissions and limitations under the License.
-*/
-#include <fstream>
-
-#include <cxxtest/TestSuite.h>
-
-#include <xercesc/dom/DOMDocument.hpp>
-
-#include <xmltooling/XMLToolingConfig.h>
-#include <xmltooling/util/XMLHelper.h>
-#include <xmltooling/util/ParserPool.h>
-#include <xmltooling/security/SecurityHelper.h>
-
-#include <saml/SAMLConfig.h>
-#include <saml/saml2/metadata/MetadataProvider.h>
-#include <saml/saml2/binding/SAML2ArtifactType0004.h>
-#include <saml/saml2/binding/SAML2Artifact.h>
-#include <saml/saml2/metadata/Metadata.h>
-#include <saml/saml2/metadata/MetadataFilter.h>
-
-#include <shibsp/Application.h>
-#include <shibsp/SPConfig.h>
-#include <shibsp/ServiceProvider.h>
-#include <shibsp/metadata/MetadataProviderCriteria.h>
-#include <shibsp/util/DOMPropertySet.h>
-#include <TestApplication.h>
-
-using namespace xmltooling;
-using namespace xercesc;
-using namespace std;
-using namespace opensaml::saml2md;
-using namespace opensaml::saml2p;
-using namespace shibsp;
-
-using boost::scoped_ptr;
-
-extern string data_path;
-
-class DynamicMetadataTest : public CxxTest::TestSuite {
- private:
-    const string m_entityId;
-    const string m_entityIdFail;
-    scoped_ptr<SAML2ArtifactType0004> m_artifact;
-public:
-    DynamicMetadataTest() : CxxTest::TestSuite(), m_entityId("https://idp.shibboleth.net/idp/shibboleth"),
-        m_entityIdFail("https://idp.shibboleth.net/idp/shibboleth/Fail"), m_artifact(nullptr)
-    {}
-
-    void setUp()
-    {
-        if (!m_artifact.get()) {
-            m_artifact.reset(new SAML2ArtifactType0004(SecurityHelper::doHash("SHA1", m_entityId.data(), m_entityId.length(), false), 666));
-        }
-    }
-
-private:
-
-    void performTest(string fileName, bool artifactOnly, const string type =  DYNAMIC_METADATA_PROVIDER)
-    {
-        const string config(data_path + fileName);
-        ifstream in(config.c_str());
-        const XMLToolingConfig& xcf = XMLToolingConfig::getConfig();
-        ParserPool& pool = xcf.getParser();
-        XercesJanitor<DOMDocument> janitor(pool.parse(in));
-        scoped_ptr<MetadataProvider> metadataProvider(
-            opensaml::SAMLConfig::getConfig().MetadataProviderManager.newPlugin(type, janitor.get()->getDocumentElement(), false)
-        );
-
-        ta::TestApplication testApp(SPConfig::getConfig().getServiceProvider(), metadataProvider.get());
-        try {
-            metadataProvider->init();
-            if (!artifactOnly) {
-                MetadataProviderCriteria critOK(testApp, m_entityId.c_str());
-                pair<const EntityDescriptor*, const RoleDescriptor*>  thePair = metadataProvider->getEntityDescriptor(critOK);
-                TS_ASSERT(nullptr != thePair.first);
-                MetadataProviderCriteria critFail(testApp, m_entityIdFail.c_str());
-                thePair = metadataProvider->getEntityDescriptor(critFail);
-                TS_ASSERT(nullptr == thePair.first);
-            }
-
-            MetadataProviderCriteria artifactCrit(testApp, m_artifact.get());
-            pair<const EntityDescriptor*, const RoleDescriptor*>  artifactPair = metadataProvider->getEntityDescriptor(artifactCrit);
-            TS_ASSERT(nullptr != artifactPair.first);
-        } catch (XMLToolingException& ex) {
-            TS_TRACE(ex.what());
-            throw;
-        }
-    }
-
-public:
-    void testTemplateFromRepo() {
-        performTest("templateFromRepo.xml", false);
-    }
-
-    void testTemplateFromRepoArtifactOnly ()
-    {
-        performTest("templateFromRepo.xml", true);
-    }
-
-
-    void testLocalDynamic()
-    {
-        performTest("localDynamic.xml", false, LOCAL_DYNAMIC_METADATA_PROVIDER);
-    }
-
-    void testLocalDynamicArtifactOnly()
-    {
-       performTest("localDynamic.xml", true, LOCAL_DYNAMIC_METADATA_PROVIDER);
-    }
-
-
-    void testChainedFromRepo()
-    {
-        performTest("chainedFromURL.xml", false, CHAINING_METADATA_PROVIDER);
-    }
-
-    void testChainedFromRepoArtifactOnly()
-    {
-        performTest("chainedFromURL.xml", true, CHAINING_METADATA_PROVIDER);
-    }
-
-private:
-    void mdqTest(bool artifactOnly)
-    {
-        string config = data_path + "fromMDQ.xml";
-        ifstream in(config.c_str());
-        XMLToolingConfig& xcf = XMLToolingConfig::getConfig();
-        ParserPool& pool = xcf.getParser();
-        XercesJanitor<DOMDocument> janitor(pool.parse(in));
-        scoped_ptr<MetadataProvider> metadataProvider(
-            opensaml::SAMLConfig::getConfig().MetadataProviderManager.newPlugin(DYNAMIC_METADATA_PROVIDER, janitor.get()->getDocumentElement(), false)
-        );
-
-        ta::TestApplication testApp(SPConfig::getConfig().getServiceProvider(), metadataProvider.get());
-        const string testEntity("https://idp2.iay.org.uk/idp/shibboleth");
-        try {
-            metadataProvider->init();
-            if (!artifactOnly) {
-                MetadataProviderCriteria crit(testApp, testEntity.c_str());
-                pair<const EntityDescriptor*, const RoleDescriptor*>  thePair = metadataProvider->getEntityDescriptor(crit);
-                TS_ASSERT(nullptr != thePair.first);
-                MetadataProviderCriteria critFail(testApp, m_entityIdFail.c_str());
-                thePair = metadataProvider->getEntityDescriptor(critFail);
-                TS_ASSERT(nullptr == thePair.first);
-            }
-
-            scoped_ptr<SAML2ArtifactType0004> testArtifact(new SAML2ArtifactType0004(SecurityHelper::doHash("SHA1", testEntity.data(), testEntity.length(), false), 666));
-            MetadataProviderCriteria artifactCrit(testApp, testArtifact.get());
-            pair<const EntityDescriptor*, const RoleDescriptor*>  artefactPair = metadataProvider->getEntityDescriptor(artifactCrit);
-            TS_ASSERT(nullptr != artefactPair.first);
-        } catch (const XMLToolingException& ex) {
-            TS_TRACE(ex.what());
-            throw;
-        }
-    }
-
-public:
-    void testMDQ()
-    {
-        mdqTest(false);
-    }
-
-    void testMDQArtifactOnly ()
-    {
-        mdqTest(true);
-    }
-
-    void testMDQBadSig()
-    {
-        string config = data_path + "badSigMDQ.xml";
-        ifstream in(config.c_str());
-        XMLToolingConfig& xcf = XMLToolingConfig::getConfig();
-        ParserPool& pool = xcf.getParser();
-        XercesJanitor<DOMDocument> janitor(pool.parse(in));
-        scoped_ptr<MetadataProvider> metadataProvider(
-            opensaml::SAMLConfig::getConfig().MetadataProviderManager.newPlugin(DYNAMIC_METADATA_PROVIDER, janitor.get()->getDocumentElement(), false)
-        );
-
-        ta::TestApplication testApp(SPConfig::getConfig().getServiceProvider(), metadataProvider.get());
-        const string testEntity("https://idp2.iay.org.uk/idp/shibboleth");
-        try {
-            metadataProvider->init();
-            MetadataProviderCriteria crit(testApp, testEntity.c_str());
-            pair<const EntityDescriptor*, const RoleDescriptor*>  thePair = metadataProvider->getEntityDescriptor(crit);
-            TS_ASSERT(nullptr == thePair.first);
-        } catch (const XMLToolingException& ex) {
-            TS_TRACE(ex.what());
-            throw;
-        }
-    }
-
-};
diff --git a/unittests/Makefile.am b/unittests/Makefile.am
deleted file mode 100644
index 59701dec..00000000
--- a/unittests/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
-AUTOMAKE_OPTIONS = foreign subdir-objects
-
-if BUILD_UNITTEST
-TESTS = shibsptest
-check_PROGRAMS = shibsptest
-endif
-
-shibsptest_CXXFLAGS = \
-    $(AM_CXXFLAGS) \
-    $(CXXTESTFLAGS) \
-    $(opensaml_CFLAGS) \
-    $(xerces_CFLAGS) \
-    $(xmltooling_CFLAGS)
-
-shibsptest_h = \
-    SPTest.h \
-    DynamicMetadataProviderTest.h
-    
-noinst_HEADERS = \
-    TestApplication.h \
-    $(shibsptest_h)
-
-nodist_shibsptest_SOURCES = $(shibsptest_h:.h=.cpp)
-shibsptest_SOURCES = TestApplication.cpp
-
-if BUILD_UNITTEST
-BUILT_SOURCES = $(nodist_shibsptest_SOURCES)
-CLEANFILES = $(nodist_shibsptest_SOURCES)
-endif
-
-do-cxxtestgen:
-	if test "$(CPPFILE)" = "SPTest.cpp"; then \
-		$(CXXTEST) --error-printer --have-eh --have-std --abort-on-fail -o $(CPPFILE) $(HFILE); \
-	else \
-		$(CXXTEST) --part --have-eh --have-std --abort-on-fail -o $(CPPFILE) $(HFILE); \
-	fi;
-
-$(nodist_shibsptest_SOURCES): %.cpp: %.h
-	$(MAKE) do-cxxtestgen HFILE=$< CPPFILE=$@
-
-shibsptest_LDADD = \
-    $(top_builddir)/shibsp/libshibsp.la \
-    $(opensaml_LIBS) \
-    $(xerces_LIBS) \
-    $(xmltooling_LIBS)
-
-EXTRA_DIST = data
diff --git a/unittests/SPTest.h b/unittests/SPTest.h
deleted file mode 100644
index c595d9ca..00000000
--- a/unittests/SPTest.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-* Licensed to the University Corporation for Advanced Internet
-* Development, Inc. (UCAID) under one or more contributor license
-* agreements. See the NOTICE file distributed with this work for
-* additional information regarding copyright ownership.
-*
-* UCAID licenses this file to you under the Apache License,
-* Version 2.0 (the "License"); you may not use this file except
-* in compliance with the License. You may obtain a copy of the
-* License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-* either express or implied. See the License for the specific
-* language governing permissions and limitations under the License.
-*/
-
-#include <fstream>
-
-#include <cxxtest/TestSuite.h>
-#include <cxxtest/GlobalFixture.h>
-
-#include <shibsp/SPConfig.h>
-#include <shibsp/metadata/MetadataExt.h>
-#include <shibsp/ServiceProvider.h>
-
-using namespace shibsp;
-
-std::string data_path = "../unittests/data/";
-std::string config_path = "../unittests/config";
-
-class ToolingFixture : public CxxTest::GlobalFixture
-{
-public:
-    bool setUpWorld() {
-        SPConfig& conf = SPConfig::getConfig();
-        // Initialize the SP library.
-        conf.setFeatures(
-            SPConfig::Metadata |
-            SPConfig::Logging);
-
-        if (!conf.init(nullptr, config_path.c_str())) {
-            fprintf(stderr, "configuration is invalid, see console for specific problems\n");
-            return false;
-        }
-
-        if (!conf.instantiate("../configs/shibboleth3.xml")) {
-            fprintf(stderr, "configuration is invalid, see console for specific problems\n");
-            return false;
-        }
-
-        registerMetadataExtClasses();
-
-        return true;
-    }
-    bool tearDownWorld() {
-        SPConfig::getConfig().term();
-        SPConfig::getConfig().getServiceProvider();
-        return true;
-    }
-};
-
-static ToolingFixture globalFixture;
-
-
-class GlobalTest : public CxxTest::TestSuite
-{
-public:
-    void testssrf(void) {
-        TS_ASSERT(true);
-    }
-};
diff --git a/unittests/TestApplication.cpp b/unittests/TestApplication.cpp
deleted file mode 100644
index b24d0f1c..00000000
--- a/unittests/TestApplication.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
-* Licensed to the University Corporation for Advanced Internet
-* Development, Inc. (UCAID) under one or more contributor license
-* agreements. See the NOTICE file distributed with this work for
-* additional information regarding copyright ownership.
-*
-* UCAID licenses this file to you under the Apache License,
-* Version 2.0 (the "License"); you may not use this file except
-* in compliance with the License. You may obtain a copy of the
-* License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-* either express or implied. See the License for the specific
-* language governing permissions and limitations under the License.
-*/
-
-#include <xmltooling/unicode.h>
-#include <shibsp/Application.h>
-#include <shibsp/util/DOMPropertySet.h>
-
-#include "TestApplication.h"
-
-using namespace std;
-using namespace shibsp;
-using namespace opensaml;
-using namespace opensaml::saml2md;
-
-namespace ta {
-    TestApplication::TestApplication(const ServiceProvider *sp, MetadataProvider* provider) : Application(sp), m_provider(provider)
-    {};
-
-    const char* TestApplication::getHash() const
-    {
-        return "";
-    }
-
-    MetadataProvider* TestApplication::getMetadataProvider(bool required) const
-    {
-        return m_provider;
-    }
-
-    xmltooling::TrustEngine* TestApplication::getTrustEngine(bool required) const
-    {
-        return nullptr;
-    }
-
-
-    AttributeExtractor* TestApplication::getAttributeExtractor() const
-    {
-        return nullptr;
-    }
-
-    AttributeFilter* TestApplication::getAttributeFilter() const
-    {
-        return nullptr;
-    }
-
-    AttributeResolver* TestApplication::getAttributeResolver() const
-    {
-        return nullptr;
-    }
-
-    xmltooling::CredentialResolver* TestApplication::getCredentialResolver() const
-    {
-        return nullptr;
-    }
-
-    const PropertySet* TestApplication::getRelyingParty(const opensaml::saml2md::EntityDescriptor* provider) const
-    {
-        return nullptr;
-    }
-
-
-    const PropertySet* TestApplication::getRelyingParty(const XMLCh* entityID) const
-    {
-        return this;
-    }
-
-
-    const vector<const XMLCh*>* TestApplication::getAudiences() const
-    {
-        return nullptr;
-    }
-
-    string TestApplication::getNotificationURL(const char* request, bool front, unsigned int index) const
-    {
-        return "";
-    }
-
-    const vector<string>& TestApplication::getRemoteUserAttributeIds() const
-    {
-        static const vector<string> retVal(0);
-        return retVal;
-    }
-
-    const SessionInitiator* TestApplication::getDefaultSessionInitiator() const
-    {
-        return nullptr;
-    }
-
-    const SessionInitiator* TestApplication::getSessionInitiatorById(const char* id) const
-    {
-        return nullptr;
-    }
-
-    const Handler* TestApplication::getDefaultAssertionConsumerService() const
-    {
-        return nullptr;
-    }
-
-    const Handler* TestApplication::getAssertionConsumerServiceByIndex(unsigned short index) const
-    {
-        return nullptr;
-    }
-
-    const Handler* TestApplication::getAssertionConsumerServiceByProtocol(const XMLCh* protocol, const char* binding) const
-    {
-        return nullptr;
-    }
-
-    const Handler* TestApplication::getHandler(const char* path) const
-    {
-        return nullptr;
-    }
-
-    void TestApplication::getHandlers(vector<const Handler*>& handlers) const
-    {
-        return;
-    }
-
-    SAMLArtifact* TestApplication::generateSAML1Artifact(const EntityDescriptor* relyingParty) const
-    {
-        return nullptr;
-    }
-
-    saml2p::SAML2Artifact* TestApplication::generateSAML2Artifact(const EntityDescriptor* relyingParty) const
-    {
-        return nullptr;
-    }
-
-
-    const PropertySet* TestApplication::getParent() const
-    {
-        return nullptr;
-    }
-    void TestApplication::setParent(const PropertySet* parent)
-    {
-        return;
-    }
-    pair<bool, bool> TestApplication::getBool(const char* name, const char* ns) const
-    {
-        static const pair<bool, bool> retVal(false, false);
-        return retVal;
-    }
-    pair<bool, const char*> TestApplication::getString(const char* name, const char* ns) const
-    {
-        if (!strcmp(name, "entityID")) {
-            return pair<bool, const char*>(true, "http://localhost/Shibboleth");
-        }
-        if (!strcmp(name, "authType")) {
-            return pair<bool, const char*>(true, "NONE");
-        }
-        return pair<bool, const char*>(false, "");
-    }
-    pair<bool, const XMLCh*> TestApplication::getXMLString(const char* name, const char* ns) const
-    {
-        static const pair<bool, const XMLCh*> retVal(false, nullptr);
-        return retVal;
-    }
-    pair<bool, unsigned int> TestApplication::getUnsignedInt(const char* name, const char* ns) const
-    {
-        static const pair<bool, unsigned int> retVal(false, 1);
-        return retVal;
-    }
-    pair<bool, int> TestApplication::getInt(const char* name, const char* ns) const
-    {
-        static const pair<bool, int> retVal(false, -1);
-        return retVal;
-    }
-    void TestApplication::getAll(std::map<std::string, const char*>& properties) const
-    {
-    }
-    const PropertySet* TestApplication::getPropertySet(const char* name, const char* ns) const
-    {
-        return nullptr;
-    }
-    const xercesc::DOMElement* TestApplication::getElement() const
-    {
-        return nullptr;
-    }
-
-}
diff --git a/unittests/TestApplication.h b/unittests/TestApplication.h
deleted file mode 100644
index 8af9cf55..00000000
--- a/unittests/TestApplication.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
-* Licensed to the University Corporation for Advanced Internet
-* Development, Inc. (UCAID) under one or more contributor license
-* agreements. See the NOTICE file distributed with this work for
-* additional information regarding copyright ownership.
-*
-* UCAID licenses this file to you under the Apache License,
-* Version 2.0 (the "License"); you may not use this file except
-* in compliance with the License. You may obtain a copy of the
-* License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
-* either express or implied. See the License for the specific
-* language governing permissions and limitations under the License.
-*/
-
-#include <shibsp/SPConfig.h>
-#include <shibsp/Application.h>
-#include <shibsp/util/DOMPropertySet.h>
-#include <saml/saml2/metadata/MetadataProvider.h>
-#include <saml/binding/SAMLArtifact.h>
-#include <saml/saml2/binding/SAML2Artifact.h>
-
-#if defined (_MSC_VER)
-#pragma warning( push )
-#pragma warning( disable : 4250 )
-#endif
-
-namespace ta {
-
-    using namespace std;
-    using namespace shibsp;
-    using namespace opensaml::saml2md;
-    using namespace opensaml;
-
-    class TestApplication : public Application  {
-    public:
-        TestApplication(const ServiceProvider *sp, MetadataProvider* provider);
-
-        // Application
-        virtual const char* getHash() const;
-        virtual MetadataProvider* getMetadataProvider(bool required=true) const;
-        virtual xmltooling::TrustEngine* getTrustEngine(bool required=true) const;
-        virtual AttributeExtractor* getAttributeExtractor() const;
-        virtual AttributeFilter* getAttributeFilter() const;
-        virtual AttributeResolver* getAttributeResolver() const;
-        virtual xmltooling::CredentialResolver* getCredentialResolver() const;
-        virtual const PropertySet* getRelyingParty(const EntityDescriptor* provider) const;
-        virtual const PropertySet* getRelyingParty(const XMLCh* entityID) const;
-        virtual const  vector<const XMLCh*>* getAudiences() const;
-        virtual string getNotificationURL(const char* request, bool front, unsigned int index) const;
-        virtual const vector<string>& getRemoteUserAttributeIds() const;
-        virtual const SessionInitiator* getDefaultSessionInitiator() const;
-        virtual const SessionInitiator* getSessionInitiatorById(const char* id) const;
-        virtual const Handler* getDefaultAssertionConsumerService() const;
-        virtual const Handler* getAssertionConsumerServiceByIndex(unsigned short index) const;
-        virtual const Handler* getAssertionConsumerServiceByProtocol(const XMLCh* protocol, const char* binding=nullptr) const;
-        virtual const Handler* getHandler(const char* path) const;
-        virtual void getHandlers(vector<const Handler*>& handlers) const;
-        virtual SAMLArtifact* generateSAML1Artifact(const EntityDescriptor* relyingParty) const;
-        virtual saml2p::SAML2Artifact* generateSAML2Artifact(const EntityDescriptor* relyingParty) const;
-
-        // PropertySet
-        virtual const PropertySet* getParent() const;
-        virtual void setParent(const PropertySet* parent);
-        virtual pair<bool, bool> getBool(const char* name, const char* ns=nullptr) const;
-        virtual pair<bool, const char*> getString(const char* name, const char* ns=nullptr) const;
-        virtual pair<bool, const XMLCh*> getXMLString(const char* name, const char* ns=nullptr) const;
-        virtual pair<bool, unsigned int> getUnsignedInt(const char* name, const char* ns=nullptr) const;
-        virtual pair<bool, int> getInt(const char* name, const char* ns=nullptr) const;
-        virtual void getAll(std::map<std::string, const char*>& properties) const;
-        virtual const PropertySet* getPropertySet(const char* name, const char* ns=shibspconstants::ASCII_SHIBSPCONFIG_NS) const;
-        virtual const xercesc::DOMElement* getElement() const;
-
-    private:
-        MetadataProvider* m_provider;
-    };
-
-}
-
-#if defined (_MSC_VER)
-#pragma warning( pop )
-#endif
diff --git a/unittests/config/etc/shibboleth/cert.pem b/unittests/config/etc/shibboleth/cert.pem
deleted file mode 100644
index e8261f3d..00000000
--- a/unittests/config/etc/shibboleth/cert.pem
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN CERTIFICATE-----
-MIICjzCCAfigAwIBAgIJAKk8t1hYcMkhMA0GCSqGSIb3DQEBBAUAMDoxCzAJBgNV
-BAYTAlVTMRIwEAYDVQQKEwlJbnRlcm5ldDIxFzAVBgNVBAMTDnNwLmV4YW1wbGUu
-b3JnMB4XDTA1MDYyMDE1NDgzNFoXDTMyMTEwNTE1NDgzNFowOjELMAkGA1UEBhMC
-VVMxEjAQBgNVBAoTCUludGVybmV0MjEXMBUGA1UEAxMOc3AuZXhhbXBsZS5vcmcw
-gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANlZ1L1mKzYbUVKiMQLhZlfGDyYa
-/jjCiaXP0WhLNgvJpOTeajvsrApYNnFX5MLNzuC3NeQIjXUNLN2Yo2MCSthBIOL5
-qE5dka4z9W9zytoflW1LmJ8vXpx8Ay/meG4z//J5iCpYVEquA0xl28HUIlownZUF
-7w7bx0cF/02qrR23AgMBAAGjgZwwgZkwHQYDVR0OBBYEFJZiO1qsyAyc3HwMlL9p
-JpN6fbGwMGoGA1UdIwRjMGGAFJZiO1qsyAyc3HwMlL9pJpN6fbGwoT6kPDA6MQsw
-CQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMRcwFQYDVQQDEw5zcC5leGFt
-cGxlLm9yZ4IJAKk8t1hYcMkhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD
-gYEAMFq/UeSQyngE0GpZueyD2UW0M358uhseYOgGEIfm+qXIFQF6MYwNoX7WFzhC
-LJZ2E6mEvZZFHCHUtl7mGDvsRwgZ85YCtRbvleEpqfgNQToto9pLYe+X6vvH9Z6p
-gmYsTmak+kxO93JprrOd9xp8aZPMEprL7VCdrhbZEfyYER0=
------END CERTIFICATE-----
diff --git a/unittests/config/etc/shibboleth/console.logger b/unittests/config/etc/shibboleth/console.logger
deleted file mode 100644
index 1a7f50a0..00000000
--- a/unittests/config/etc/shibboleth/console.logger
+++ /dev/null
@@ -1,11 +0,0 @@
-log4j.rootCategory=WARN, console
-log4j.category.Shibboleth.MetadataProvider.Dynamic=DEBUG
-log4j.category.OpenSAML.MetadataProvider=DEBUG
-log4j.category.OpenSAML.Metadata=DEBUG
-
-Shibboleth
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-#log4j.appender.console.layout=org.apache.log4j.BasicLayout
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n
-
diff --git a/unittests/config/etc/shibboleth/icpem.pem b/unittests/config/etc/shibboleth/icpem.pem
deleted file mode 100644
index 4c1471fb..00000000
--- a/unittests/config/etc/shibboleth/icpem.pem
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDkzCCAnugAwIBAgIJAPE6UChEGaEbMA0GCSqGSIb3DQEBCwUAMGAxCzAJBgNV
-BAYTAlVTMRUwEwYDVQQKDAxJbkNvbW1vbiBMTEMxOjA4BgNVBAMMMUluQ29tbW9u
-IE1ldGFkYXRhIFF1ZXJ5IFNlcnZlciAoQkVUQSkgU2lnbmluZyBLZXkwHhcNMTQw
-OTE4MTI1NjM2WhcNMjQwOTE1MTI1NjM2WjBgMQswCQYDVQQGEwJVUzEVMBMGA1UE
-CgwMSW5Db21tb24gTExDMTowOAYDVQQDDDFJbkNvbW1vbiBNZXRhZGF0YSBRdWVy
-eSBTZXJ2ZXIgKEJFVEEpIFNpZ25pbmcgS2V5MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAzbxBNKPE/JkSTCmyJpUYWv7BBqQo713VxM4XETijKR7yY7bt
-rR5/peVDThAxTISEW0lnqv1OIgf5u6AvOsFKYfRVuol6aTGGN657uGv3fuX2kcAB
-HDjNkVRUQNNm0LaiyECUsUupnpzMQFbLAjiBOkZigfqxjHVnbM5DX3S/NR5N5ao5
-vFrpYQAV+MCBphIx4H2E1ZsZ6xRh6Z/npkOR+m2u81vWkmEFoawXT0U/hN5k/JUo
-qiGpPShE8AmSIag5x9BPF53l22OfFZMfuIK2EBGOaAwYiJS9sOLWmPO+nnkfl1WT
-15SuvCAjXZK4q8/kRIk79ZGIt2dgl7Vz5Y2AsQIDAQABo1AwTjAdBgNVHQ4EFgQU
-hN8Otwo7Z+K0H3K8gOcp6+mXB1QwHwYDVR0jBBgwFoAUhN8Otwo7Z+K0H3K8gOcp
-6+mXB1QwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAn+MPrkyxv0Ek
-RGS5zieYw24NQk6JTtXaxEWVOfYaddEuV1zv/y/4MmDzy6FJWDE14fI3C5/zj2/u
-vpAzHTE2QyZZoManufZZ1EpEFKhAdMT0zOoyQO0uFMo6ZjtMy8UmcrWgjlqPn80x
-Xww9QrodQC5XA7ypbBhhjfXbGbeo9DgOa4B64Tgt60HLGxhdzluHXo4dZ9KDl3B7
-CuLHhw+bAvIVWUjLlBJrXQx1z1kV3/EMQszSK9tgaZ0IDn44N4wEjz20hAszf2g9
-bGJXSugm0/0/QU2tmbbhxqz09TccNVJUtkYdlzvdeAOwkOSdQG9CVyRAKd+pnMku
-NXsXne3RtQ==
------END CERTIFICATE-----
\ No newline at end of file
diff --git a/unittests/config/etc/shibboleth/security-policy.xml b/unittests/config/etc/shibboleth/security-policy.xml
deleted file mode 100644
index 41b000bd..00000000
--- a/unittests/config/etc/shibboleth/security-policy.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<SecurityPolicies xmlns="urn:mace:shibboleth:2.0:native:sp:config">
-
-    <!-- Each policy defines a set of rules to use to secure messages. -->
-
-    <!--
-    The predefined policy enforces replay/freshness, standard
-    condition processing, and permits signing and client TLS.
-    -->
-    <Policy id="default" validate="false">
-        <PolicyRule type="MessageFlow" checkReplay="true" expires="60"/>
-        <PolicyRule type="Conditions">
-            <PolicyRule type="Audience"/>
-            <!-- Enable Delegation rule to permit delegated access. -->
-            <!-- <PolicyRule type="Delegation"/> -->
-        </PolicyRule>
-        <PolicyRule type="ClientCertAuth" errorFatal="true"/>
-        <PolicyRule type="XMLSigning" errorFatal="true"/>
-        <PolicyRule type="SimpleSigning" errorFatal="true"/>
-    </Policy>
-
-    <!--
-    This policy is a place-holder for use of assertions in metadata
-    as a way of attaching signed information about particular IdPs.
-    -->
-    <Policy id="entity-attributes">
-        <PolicyRule type="Conditions"/>
-        <PolicyRule type="XMLSigning" errorFatal="true"/>
-    </Policy>
-    
-    <!-- Disables known weak algorithms. -->
-    <AlgorithmBlacklist includeDefaultBlacklist="true"/>
-
-</SecurityPolicies>
diff --git a/unittests/config/var/cache/shibboleth/.gitignore b/unittests/config/var/cache/shibboleth/.gitignore
deleted file mode 100644
index 97f440fc..00000000
--- a/unittests/config/var/cache/shibboleth/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-dynamic/*.xml
diff --git a/unittests/config/var/cache/shibboleth/dynamic/gitkeep/.gitkeep b/unittests/config/var/cache/shibboleth/dynamic/gitkeep/.gitkeep
deleted file mode 100644
index 564d4dda..00000000
--- a/unittests/config/var/cache/shibboleth/dynamic/gitkeep/.gitkeep
+++ /dev/null
@@ -1 +0,0 @@
-foo 
diff --git a/unittests/data/badSigMDQ.xml b/unittests/data/badSigMDQ.xml
deleted file mode 100644
index 12eb5188..00000000
--- a/unittests/data/badSigMDQ.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<MetadataProvider type="MDQ" ignoreTransport="true"  cacheDirectory="dynamic/BadSig" backgroundInitialize="true" baseUrl="http://mdq-beta.incommon.org/global/">
-    <MetadataFilter type="Signature" certificate="cert.pem"/>
-</MetadataProvider>
-    
\ No newline at end of file
diff --git a/unittests/data/chainedFromURL.xml b/unittests/data/chainedFromURL.xml
deleted file mode 100644
index 41c4adc8..00000000
--- a/unittests/data/chainedFromURL.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<MetadataProvider type="Chaining">
-    <MetadataProvider type="Dynamic" ignoreTransport="true" >
-        <Subst hashed="SHA1">http://git.shibboleth.net/view/?p=cpp-sp.git&a=blob_plain&f=unittests/data/$entityID.xml&hb=master</Subst>
-    </MetadataProvider>
-
-    <MetadataProvider type="Dynamic" ignoreTransport="true" >
-        <Regex match="^\{sha1\}(.*)$">http://git.shibboleth.net/view/?p=cpp-sp.git&a=blob_plain&f=unittests/data/$1.xml&hb=master</Regex>
-    </MetadataProvider>
-</MetadataProvider>
-
diff --git a/unittests/data/df5a20c921bc30c1b76c5a6cec08d074e280de8b.xml b/unittests/data/df5a20c921bc30c1b76c5a6cec08d074e280de8b.xml
deleted file mode 100644
index 0dedc746..00000000
--- a/unittests/data/df5a20c921bc30c1b76c5a6cec08d074e280de8b.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<EntityDescriptor entityID="https://idp.shibboleth.net/idp/shibboleth"
-                  xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
-                  xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport"
-                  xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
-                  xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" 
-                  xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init" 
-                  xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi" 
-                  xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" 
-                  xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" 
-                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                  >
-
-    <Extensions>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
-      <mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2011-01-06T16:22:29Z">
-        <mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
-      </mdrpi:RegistrationInfo>
-    </Extensions>
-    <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
-      <Extensions>
-        <shibmd:Scope regexp="false">shibboleth.net</shibmd:Scope>
-        <mdui:UIInfo>
-          <mdui:DisplayName xml:lang="en">Shibboleth.net</mdui:DisplayName>
-          <mdui:Description xml:lang="en">An identity provider hosted and used by the
-					developers of Shibboleth.</mdui:Description>
-          <mdui:Logo height="82" width="64">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
-        </mdui:UIInfo>
-      </Extensions>
-      <KeyDescriptor>
-        <ds:KeyInfo>
-          <ds:X509Data>
-            <ds:X509Certificate>
-MIIDNDCCAhygAwIBAgIVAKyBWnv1/h1U11C7kHvV33FIrEsJMA0GCSqGSIb3DQEB
-BQUAMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5ldDAeFw0xMDEyMjkwMDA5
-MTlaFw0zMDEyMjkwMDA5MTlaMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5l
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjWAdpUx/82FUzrRMfA
-M63PkZZYCm3RnT3eiL+DeJcbGdcEJx/o+32vgHXJgJOBt14YdVam5GErIYgk4SGq
-5Z5RYl0PpQn6HQG/9prGnYCu6p5zfb0557o51Eh8TcVehS6Y2ruyCjAF0jgVMwh5
-/0Oh8EE9wG93pSpm70DAiiaTVCb8WoT1aZYtxbBmmuH10bU+wge/NMmaHuVAe599
-pyezFIL4FoI2g+1Q6nG4Yl1Z07I81tTApXKVMWRt/4/M3m2D7PUMOQ9qsxthp2L/
-LovIeNo0bTyeW290T2Y/JRZhKOgeDqkhuu82DPri2Vm5G/unB69KfRB7CF9QWIc3
-y80CAwEAAaNrMGkwSAYDVR0RBEEwP4ISaWRwLnNoaWJib2xldGgubmV0hilodHRw
-czovL2lkcC5zaGliYm9sZXRoLm5ldC9pZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQU
-3uZ32tKXJBzPCTp2dtHSLV0FvGgwDQYJKoZIhvcNAQEFBQADggEBAAYXYuzp0UTj
-3yLRvUCbEtaw9b80+weOELkVv3WFY3QAG8pIKEblrMMtzrzLFWZwYwwMZDab/HnH
-egmgjZBthrOedEmoJ+OHRmIiS8zdZxVGEadJhTUaeIkO6kwK7Ht3nQePoiXV7TI5
-+A9SpmZGoukC85Za4wGDw4xWGs5t5l6tBuuV+1s0oC6T8ih5n/NyThfpbihSW0d7
-iBfSUickgpoM2BLM3FCnbO8HOsX1rGV4ypG9ZGDDvr2jrzalXXmc05gSlL2qd9ce
-Q1M+9vavusPCqlj2zZf2/HfzhyiFcb/OgA0oTFWW2ynXji6UarIV5QaPoi/XmGmx
-BXD36HfGBXk=
-</ds:X509Certificate>
-          </ds:X509Data>
-        </ds:KeyInfo>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
-      </KeyDescriptor>
-      <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
-      <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://shibboleth.net/idp/profile/SAML2/POST/SSO"/>
-      <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://shibboleth.net/idp/profile/SAML2/POST-SimpleSign/SSO"/>
-      <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://shibboleth.net/idp/profile/SAML2/Redirect/SSO"/>
-    </IDPSSODescriptor>
-    <Organization>
-      <OrganizationName xml:lang="en">JISC Collections and Janet Limited</OrganizationName>
-      <OrganizationDisplayName xml:lang="en">Shibboleth.net</OrganizationDisplayName>
-      <OrganizationURL xml:lang="en">http://www.shibboleth.net/</OrganizationURL>
-    </Organization>
-    <ContactPerson contactType="support">
-      <GivenName>Shibboleth.Net Technical Support</GivenName>
-      <EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
-    </ContactPerson>
-    <ContactPerson contactType="technical">
-      <GivenName>Scott</GivenName>
-      <SurName>Cantor</SurName>
-      <EmailAddress>mailto:cantor.2 at osu.edu</EmailAddress>
-    </ContactPerson>
-    <ContactPerson contactType="technical">
-      <GivenName>Ian</GivenName>
-      <SurName>Young</SurName>
-      <EmailAddress>mailto:ukfed at iay.org.uk</EmailAddress>
-    </ContactPerson>
-  </EntityDescriptor>
diff --git a/unittests/data/fromMDQ.xml b/unittests/data/fromMDQ.xml
deleted file mode 100644
index 5a731656..00000000
--- a/unittests/data/fromMDQ.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<MetadataProvider type="MDQ" ignoreTransport="true"  cacheDirectory="dynamic" backgroundInitialize="true" baseUrl="http://mdq-beta.incommon.org/global/">
-    <MetadataFilter type="Signature" certificate="icpem.pem"/>
-</MetadataProvider>
diff --git a/unittests/data/idp.shibboleth.net.xml b/unittests/data/idp.shibboleth.net.xml
deleted file mode 100644
index 0dedc746..00000000
--- a/unittests/data/idp.shibboleth.net.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<EntityDescriptor entityID="https://idp.shibboleth.net/idp/shibboleth"
-                  xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
-                  xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport"
-                  xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
-                  xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol" 
-                  xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init" 
-                  xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi" 
-                  xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui" 
-                  xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" 
-                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                  >
-
-    <Extensions>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
-      <alg:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
-      <alg:SigningMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
-      <mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk" registrationInstant="2011-01-06T16:22:29Z">
-        <mdrpi:RegistrationPolicy xml:lang="en">http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
-      </mdrpi:RegistrationInfo>
-    </Extensions>
-    <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
-      <Extensions>
-        <shibmd:Scope regexp="false">shibboleth.net</shibmd:Scope>
-        <mdui:UIInfo>
-          <mdui:DisplayName xml:lang="en">Shibboleth.net</mdui:DisplayName>
-          <mdui:Description xml:lang="en">An identity provider hosted and used by the
-					developers of Shibboleth.</mdui:Description>
-          <mdui:Logo height="82" width="64">https://shibboleth.net/images/gryphon_64x82.png</mdui:Logo>
-        </mdui:UIInfo>
-      </Extensions>
-      <KeyDescriptor>
-        <ds:KeyInfo>
-          <ds:X509Data>
-            <ds:X509Certificate>
-MIIDNDCCAhygAwIBAgIVAKyBWnv1/h1U11C7kHvV33FIrEsJMA0GCSqGSIb3DQEB
-BQUAMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5ldDAeFw0xMDEyMjkwMDA5
-MTlaFw0zMDEyMjkwMDA5MTlaMB0xGzAZBgNVBAMTEmlkcC5zaGliYm9sZXRoLm5l
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjWAdpUx/82FUzrRMfA
-M63PkZZYCm3RnT3eiL+DeJcbGdcEJx/o+32vgHXJgJOBt14YdVam5GErIYgk4SGq
-5Z5RYl0PpQn6HQG/9prGnYCu6p5zfb0557o51Eh8TcVehS6Y2ruyCjAF0jgVMwh5
-/0Oh8EE9wG93pSpm70DAiiaTVCb8WoT1aZYtxbBmmuH10bU+wge/NMmaHuVAe599
-pyezFIL4FoI2g+1Q6nG4Yl1Z07I81tTApXKVMWRt/4/M3m2D7PUMOQ9qsxthp2L/
-LovIeNo0bTyeW290T2Y/JRZhKOgeDqkhuu82DPri2Vm5G/unB69KfRB7CF9QWIc3
-y80CAwEAAaNrMGkwSAYDVR0RBEEwP4ISaWRwLnNoaWJib2xldGgubmV0hilodHRw
-czovL2lkcC5zaGliYm9sZXRoLm5ldC9pZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQU
-3uZ32tKXJBzPCTp2dtHSLV0FvGgwDQYJKoZIhvcNAQEFBQADggEBAAYXYuzp0UTj
-3yLRvUCbEtaw9b80+weOELkVv3WFY3QAG8pIKEblrMMtzrzLFWZwYwwMZDab/HnH
-egmgjZBthrOedEmoJ+OHRmIiS8zdZxVGEadJhTUaeIkO6kwK7Ht3nQePoiXV7TI5
-+A9SpmZGoukC85Za4wGDw4xWGs5t5l6tBuuV+1s0oC6T8ih5n/NyThfpbihSW0d7
-iBfSUickgpoM2BLM3FCnbO8HOsX1rGV4ypG9ZGDDvr2jrzalXXmc05gSlL2qd9ce
-Q1M+9vavusPCqlj2zZf2/HfzhyiFcb/OgA0oTFWW2ynXji6UarIV5QaPoi/XmGmx
-BXD36HfGBXk=
-</ds:X509Certificate>
-          </ds:X509Data>
-        </ds:KeyInfo>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
-        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
-      </KeyDescriptor>
-      <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
-      <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://shibboleth.net/idp/profile/SAML2/POST/SSO"/>
-      <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://shibboleth.net/idp/profile/SAML2/POST-SimpleSign/SSO"/>
-      <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://shibboleth.net/idp/profile/SAML2/Redirect/SSO"/>
-    </IDPSSODescriptor>
-    <Organization>
-      <OrganizationName xml:lang="en">JISC Collections and Janet Limited</OrganizationName>
-      <OrganizationDisplayName xml:lang="en">Shibboleth.net</OrganizationDisplayName>
-      <OrganizationURL xml:lang="en">http://www.shibboleth.net/</OrganizationURL>
-    </Organization>
-    <ContactPerson contactType="support">
-      <GivenName>Shibboleth.Net Technical Support</GivenName>
-      <EmailAddress>mailto:contact at shibboleth.net</EmailAddress>
-    </ContactPerson>
-    <ContactPerson contactType="technical">
-      <GivenName>Scott</GivenName>
-      <SurName>Cantor</SurName>
-      <EmailAddress>mailto:cantor.2 at osu.edu</EmailAddress>
-    </ContactPerson>
-    <ContactPerson contactType="technical">
-      <GivenName>Ian</GivenName>
-      <SurName>Young</SurName>
-      <EmailAddress>mailto:ukfed at iay.org.uk</EmailAddress>
-    </ContactPerson>
-  </EntityDescriptor>
diff --git a/unittests/data/localDynamic.xml b/unittests/data/localDynamic.xml
deleted file mode 100644
index 32ee1dbb..00000000
--- a/unittests/data/localDynamic.xml
+++ /dev/null
@@ -1 +0,0 @@
-<MetadataProvider type="LocalDynamic" sourceDirectory="H:/Perforce/VS2017/cpp-sp/unittests/data/" />
\ No newline at end of file
diff --git a/unittests/data/templateFromRepo.xml b/unittests/data/templateFromRepo.xml
deleted file mode 100644
index 6d531b13..00000000
--- a/unittests/data/templateFromRepo.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<MetadataProvider type="Dynamic" ignoreTransport="true" backgroundInitialize="false" cacheDirectory="dynamic">
-<Subst hashed="SHA1">http://git.shibboleth.net/view/?p=cpp-sp.git&a=blob_plain&f=unittests/data/$entityID.xml&hb=master</Subst>
-</MetadataProvider>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list