This should go to the FAQ.
Q: My Signature/C14n don't validate, please HELP!!!
A: This can happen for several reasons. But check:
1. is the DocumentBuilder namespace aware? (Check if it the method
setNamespaceAware(true) has been called before newDocumentBuilder()
used to parse or create the document)
.... [Add more info regarding c14n problems, how to obtain what is
signed, etc...)
Regards,
Raul
On 9/17/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Hi
I am a XML-signature newbie and I am trying to figure out how to verify an
XML Signature with default namespace:
<samlp:Response
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" ...>
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" ...>
<saml:Conditions ...>
...
</saml:Conditions>
<saml:AuthenticationStatement ...>...</
saml:AuthenticationStatement>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
...
</Signature>
</saml:Assertion>
.
I have tried to use the example from
src_samples/org/apache/xml/security/samples/signature/ to do this.
Here is a snippet of my code:
Document doc = builder.parse(new InputSource(new StringReader(xmlString)));
Element sigElement = (Element) XPathAPI.selectSingleNode(doc,
"//Signature[1]");
XMLSignature signature = new XMLSignature(sigElement, "http://");
It fails on the last line, throwing the exception:
org.apache.xml.security.exceptions.XMLSecurityException: Cannot create a
null:null from a http://www.w3.org/2000/09/xmldsig#:Signature element
at
org.apache.xml.security.utils.ElementProxy.guaranteeThatElementInCorrectSpace(ElementProxy.java:272)
at
org.apache.xml.security.utils.ElementProxy.<init>(ElementProxy.java:209)
at
org.apache.xml.security.utils.SignatureElementProxy.<init>(SignatureElementProxy.java:54)
at
org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:255)
Any ideas?
Best regards,
Vidar
--
http://r-bg.com