Make sure to validate unmarshalled copy.
authorScott Cantor <cantor.2@osu.edu>
Sun, 13 Aug 2006 22:58:52 +0000 (22:58 +0000)
committerScott Cantor <cantor.2@osu.edu>
Sun, 13 Aug 2006 22:58:52 +0000 (22:58 +0000)
samltest/signature/SAML1AssertionTest.h
samltest/signature/SAML1RequestTest.h
samltest/signature/SAML1ResponseTest.h
samltest/signature/SAML2AssertionTest.h

index 2f5c7c5..ba26d9d 100644 (file)
@@ -85,13 +85,14 @@ public:
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
         \r
-        assertEquals(expectedChildElementsDOM, b->buildFromDocument(doc));\r
+        auto_ptr<XMLObject> assertion2(b->buildFromDocument(doc));\r
+        assertEquals("Unmarshalled assertion does not match", expectedChildElementsDOM, assertion2.get(), false);\r
         \r
         try {\r
             SignatureProfileValidator spv;\r
             SignatureValidator sv(new KeyResolver(m_resolver->getKey()));\r
-            spv.validate(assertion->getSignature());\r
-            sv.validate(assertion->getSignature());\r
+            spv.validate(dynamic_cast<Assertion*>(assertion2.get())->getSignature());\r
+            sv.validate(dynamic_cast<Assertion*>(assertion2.get())->getSignature());\r
         }\r
         catch (XMLToolingException& e) {\r
             TS_TRACE(e.what());\r
index 46c183c..0ebd828 100644 (file)
@@ -84,13 +84,14 @@ public:
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
 \r
-        assertEquals(expectedChildElementsDOM, b->buildFromDocument(doc));\r
+        auto_ptr<XMLObject> request2(b->buildFromDocument(doc));\r
+        assertEquals("Unmarshalled request does not match", expectedChildElementsDOM, request2.get(), false);\r
         \r
         try {\r
             SignatureProfileValidator spv;\r
             SignatureValidator sv(new KeyResolver(m_resolver->getKey()));\r
-            spv.validate(request->getSignature());\r
-            sv.validate(request->getSignature());\r
+            spv.validate(dynamic_cast<Request*>(request2.get())->getSignature());\r
+            sv.validate(dynamic_cast<Request*>(request2.get())->getSignature());\r
         }\r
         catch (XMLToolingException& e) {\r
             TS_TRACE(e.what());\r
index 6643b5e..f975cc1 100644 (file)
@@ -114,16 +114,17 @@ public:
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
         \r
-        assertEquals(expectedChildElementsDOM, b->buildFromDocument(doc));\r
+        auto_ptr<XMLObject> response2(b->buildFromDocument(doc));\r
+        assertEquals("Unmarshalled request does not match", expectedChildElementsDOM, response2.get(), false);\r
         \r
         try {\r
             SignatureProfileValidator spv;\r
-            spv.validate(assertion->getSignature());\r
-            spv.validate(response->getSignature());\r
+            spv.validate(dynamic_cast<Response*>(response2.get())->getAssertions().front()->getSignature());\r
+            spv.validate(dynamic_cast<Response*>(response2.get())->getSignature());\r
 \r
             SignatureValidator sv(new KeyResolver(m_resolver->getKey()));\r
-            sv.validate(assertion->getSignature());\r
-            sv.validate(response->getSignature());\r
+            sv.validate(dynamic_cast<Response*>(response2.get())->getAssertions().front()->getSignature());\r
+            sv.validate(dynamic_cast<Response*>(response2.get())->getSignature());\r
         }\r
         catch (XMLToolingException& e) {\r
             TS_TRACE(e.what());\r
index db45a15..6bf5bec 100644 (file)
@@ -93,13 +93,14 @@ public:
         DOMDocument* doc=XMLToolingConfig::getConfig().getParser().parse(in);\r
         const XMLObjectBuilder* b = XMLObjectBuilder::getBuilder(doc->getDocumentElement());\r
         \r
-        assertEquals(expectedChildElementsDOM, b->buildFromDocument(doc));\r
+        auto_ptr<XMLObject> assertion2(b->buildFromDocument(doc));\r
+        assertEquals("Unmarshalled assertion does not match", expectedChildElementsDOM, assertion2.get(), false);\r
         \r
         try {\r
             SignatureProfileValidator spv;\r
             SignatureValidator sv(new KeyResolver(m_resolver->getKey()));\r
-            spv.validate(assertion->getSignature());\r
-            sv.validate(assertion->getSignature());\r
+            spv.validate(dynamic_cast<Assertion*>(assertion2.get())->getSignature());\r
+            sv.validate(dynamic_cast<Assertion*>(assertion2.get())->getSignature());\r
         }\r
         catch (XMLToolingException& e) {\r
             TS_TRACE(e.what());\r