Refined ElementProxy/ElementExtensible interfaces to match Java.
[shibboleth/cpp-opensaml.git] / samltest / binding.h
index fdd0ce7..b412be8 100644 (file)
 #include <saml/binding/MessageDecoder.h>\r
 #include <saml/binding/MessageEncoder.h>\r
 #include <saml/binding/URLEncoder.h>\r
+#include <saml/saml2/metadata/Metadata.h>\r
 #include <saml/saml2/metadata/MetadataProvider.h>\r
-#include <saml/security/TrustEngine.h>\r
+#include <xmltooling/security/TrustEngine.h>\r
 \r
-using namespace saml2md;\r
+using namespace opensaml::saml2md;\r
 using namespace xmlsignature;\r
 \r
 class SAMLBindingBaseTestCase : public HTTPRequest, public HTTPResponse\r
@@ -33,10 +34,10 @@ class SAMLBindingBaseTestCase : public HTTPRequest, public HTTPResponse
 protected:\r
     CredentialResolver* m_creds; \r
     MetadataProvider* m_metadata;\r
-    opensaml::TrustEngine* m_trust;\r
+    TrustEngine* m_trust;\r
     map<string,string> m_fields;\r
     map<string,string> m_headers;\r
-    string m_method,m_url;\r
+    string m_method,m_url,m_query;\r
     vector<XSECCryptoX509*> m_clientCerts;\r
     vector<const SecurityPolicyRule*> m_rules;\r
 \r
@@ -49,6 +50,7 @@ public:
         m_headers.clear();\r
         m_method.erase();\r
         m_url.erase();\r
+        m_query.erase();\r
 \r
         try {\r
             string config = data_path + "binding/ExampleMetadataProvider.xml";\r
@@ -74,10 +76,11 @@ public:
                 FILESYSTEM_CREDENTIAL_RESOLVER,doc2->getDocumentElement()\r
                 );\r
                 \r
-            m_trust = SAMLConfig::getConfig().TrustEngineManager.newPlugin(EXPLICIT_KEY_SAMLTRUSTENGINE, NULL);\r
+            m_trust = XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(EXPLICIT_KEY_TRUSTENGINE, NULL);\r
 \r
             m_rules.push_back(SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(MESSAGEFLOW_POLICY_RULE,NULL));\r
-            m_rules.push_back(SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(MESSAGESIGNING_POLICY_RULE,NULL));\r
+            m_rules.push_back(SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(SIMPLESIGNING_POLICY_RULE,NULL));\r
+            m_rules.push_back(SAMLConfig::getConfig().SecurityPolicyRuleManager.newPlugin(XMLSIGNING_POLICY_RULE,NULL));\r
         }\r
         catch (XMLToolingException& ex) {\r
             TS_TRACE(ex.what());\r
@@ -89,6 +92,7 @@ public:
     \r
     void tearDown() {\r
         for_each(m_rules.begin(), m_rules.end(), xmltooling::cleanup<SecurityPolicyRule>());\r
+        m_rules.clear();\r
         delete m_creds;\r
         delete m_metadata;\r
         delete m_trust;\r
@@ -99,6 +103,7 @@ public:
         m_headers.clear();\r
         m_method.erase();\r
         m_url.erase();\r
+        m_query.erase();\r
     }\r
 \r
     // HTTPRequest methods\r
@@ -132,7 +137,7 @@ public:
     }\r
     \r
     const char* getQueryString() const {\r
-        return NULL;\r
+        return m_query.c_str();\r
     }\r
     \r
     string getRemoteUser() const {\r
@@ -188,6 +193,7 @@ public:
         char* pch = strchr(dup,'?');\r
         if (pch) {\r
             *pch++=0;\r
+            m_query = pch;\r
             char* name=pch;\r
             while (name && *name) {\r
                 pch=strchr(pch,'=');\r
@@ -232,6 +238,14 @@ public:
         return decoded;\r
     }\r
     \r
+    long sendResponse(std::istream& inputStream) {\r
+        return sendResponse(inputStream, HTTPResponse::SAML_HTTP_STATUS_OK);\r
+    }\r
+\r
+    long sendError(std::istream& inputStream) {\r
+        return sendResponse(inputStream, HTTPResponse::SAML_HTTP_STATUS_ERROR);\r
+    }\r
+\r
     long sendResponse(std::istream& inputStream, long status) {\r
         m_method="POST";\r
         string page,line;\r