Thanx, Colm. I'll rework it using the OpenSAML API's directly as you suggest 
and pursue it that way. 

Stephen W. Chappell

-----Original Message-----
From: Colm O hEigeartaigh [mailto:cohei...@apache.org] 
Sent: Monday, October 06, 2014 5:37 AM
To: users@cxf.apache.org
Subject: Re: Weird AssertionWrapper.signAssertion() problem

I added support in WSS4J for creating SAML Assertions with "Advice"
Elements - I can reproduce the issue you are seeing with the internal signature 
stuff:

http://svn.apache.org/viewvc?view=revision&revision=r1629601

I recommend breaking it down into a testcase that uses just the OpenSAML APIs + 
send it to the OpenSAML dev list to see what they think. WSS4J is also using a 
slightly older version of OpenSAML so there is a possibility that it is a bug 
which has since been fixed.

Colm.

On Wed, Oct 1, 2014 at 2:18 PM, <stephen.ctr.chapp...@faa.gov> wrote:

> In CXF 2.7.12, I'm having a weird problem when signing a SAML 1.1 
> assertion, when the assertion contains another assertion in the Advice 
> element. All SAML assertions are required to be signed by the issuer, 
> including assertions embedded in the Advice element. But what is 
> happening is that when I sign the "outer" assertion, the
> AssertionWrapper.signAssertion() method is stripping the digest and 
> signature values  from the "inner" assertion in the Advice element.
>
> The signature line looks like this:
>             sa.signAssertion(issuerAlias, issuerPassword, 
> issuerCrypto, false,
>                 "http://www.w3.org/2001/10/xml-exc-c14n#";,
> signatureAlgorithm, digestAlgorithm);
>
> Here is what the assertion looks like immediately before and after 
> this call, stripped down a bit for brevity. You can see in the second 
> assertion that the signature on the inner Advice/Assertion has been 
> changed - the digest method is changed, and the digest and signature 
> values have been removed. What is causing this, and how can I prevent 
> it? Any and all help would be appreciated, thanx!
>
> BEFORE:
>
> <saml1:Assertion AssertionID="_99B35E24E753D60162141216853759332"
> IssueInstant="2014-10-01T13:02:17.592Z" Issuer="SWIM-STS" MajorVersion="1"
> MinorVersion="1" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion">
>                 <saml1:Conditions NotBefore="2014-10-01T13:02:17.585Z"
> NotOnOrAfter="2014-10-01T13:03:16.748Z">
>                     ...
>                 </saml1:Conditions>
>                 <saml1:Advice>
>                                 <saml1:Assertion 
> AssertionID="_99B35E24E753D60162141216853713111"
> IssueInstant="2014-10-01T13:02:17.130Z" Issuer="SWIM-STS" MajorVersion="1"
> MinorVersion="1" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion">
>                                                 <saml1:Conditions 
> NotBefore="2014-10-01T13:02:16.748Z"
> NotOnOrAfter="2014-10-01T13:03:16.748Z">
>                 ...
>                                                 </saml1:Conditions>
>
> <saml1:AuthenticationStatement
> AuthenticationInstant="2014-10-01T13:02:16.748Z"
> AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:X509-PKI">
>
> <saml1:Subject>
>                                                                     ...
>
> </saml1:Subject>
>
> </saml1:AuthenticationStatement>
>                                                 <ds:Signature xmlns:ds="
> http://www.w3.org/2000/09/xmldsig#";>
>
> <ds:SignedInfo>
>
>       <ds:CanonicalizationMethod Algorithm="
> http://www.w3.org/2001/10/xml-exc-c14n#"/>
>
>       <ds:SignatureMethod Algorithm="
> http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
>
>       <ds:Reference URI="#_99B35E24E753D60162141216853713111">
>
>                       <ds:Transforms>
>
>                                       <ds:Transform Algorithm="
> http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
>
>                                       <ds:Transform Algorithm="
> http://www.w3.org/2001/10/xml-exc-c14n#"/>
>
>                       </ds:Transforms>
>
>                       <ds:DigestMethod Algorithm="
> http://www.w3.org/2001/04/xmlenc#sha256"/>
>
>
> <ds:DigestValue>1EEQlsuneSKs81Hq+3lcqiKjOXMMNmbgVnZ0pFuIQOs=</ds:Diges
> tValue>
>
>       </ds:Reference>
>
> </ds:SignedInfo>
>
> <ds:SignatureValue>...</ds:SignatureValue>
>
> <ds:KeyInfo>
>
>       <ds:X509Data>
>
>                       <ds:X509Certificate>...</ds:X509Certificate>
>
>       </ds:X509Data>
>
> </ds:KeyInfo>
>                                                 </ds:Signature>
>                                 </saml1:Assertion>
>                 </saml1:Advice>
>                 <saml1:AuthenticationStatement 
> AuthenticationInstant="2014-10-01T13:02:17.585Z"
> AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:X509-PKI">
>                                 <saml1:Subject>
>                                     ...
>                                 </saml1:Subject>
>                 </saml1:AuthenticationStatement> </saml1:Assertion>
>
> AFTER:
>
> <saml1:Assertion AssertionID="_99B35E24E753D60162141216853759332"
> IssueInstant="2014-10-01T13:02:17.592Z" Issuer="SWIM-STS" MajorVersion="1"
> MinorVersion="1" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion">
>                 <saml1:Conditions NotBefore="2014-10-01T13:02:17.585Z"
> NotOnOrAfter="2014-10-01T13:03:16.748Z">
>         ...
>                 </saml1:Conditions>
>                 <saml1:Advice>
>                                 <saml1:Assertion 
> AssertionID="_99B35E24E753D60162141216853713111"
> IssueInstant="2014-10-01T13:02:17.130Z" Issuer="SWIM-STS" MajorVersion="1"
> MinorVersion="1" xmlns:saml1="urn:oasis:names:tc:SAML:1.0:assertion">
>                                                 <saml1:Conditions 
> NotBefore="2014-10-01T13:02:16.748Z"
> NotOnOrAfter="2014-10-01T13:03:16.748Z">
>                 ...
>                                                 </saml1:Conditions>
>
> <saml1:AuthenticationStatement
> AuthenticationInstant="2014-10-01T13:02:16.748Z"
> AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:X509-PKI">
>
> <saml1:Subject>
>                     ...
>
> </saml1:Subject>
>
> </saml1:AuthenticationStatement>
>                                                 <ds:Signature xmlns:ds="
> http://www.w3.org/2000/09/xmldsig#";>
>
> <ds:SignedInfo>
>
>       <ds:CanonicalizationMethod Algorithm="
> http://www.w3.org/2001/10/xml-exc-c14n#"/>
>
>       <ds:SignatureMethod Algorithm="
> http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
>
>       <ds:Reference URI="#_99B35E24E753D60162141216853713111">
>
>                       <ds:Transforms>
>
>                                       <ds:Transform Algorithm="
> http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
>
>                                       <ds:Transform Algorithm="
> http://www.w3.org/2001/10/xml-exc-c14n#"/>
>
>                       </ds:Transforms>
>
>                       <ds:DigestMethod Algorithm="
> http://www.w3.org/2000/09/xmldsig#sha1"/>
>
>                       <ds:DigestValue/>
>
>       </ds:Reference>
>
> </ds:SignedInfo>
>
> <ds:SignatureValue/>
>
> <ds:KeyInfo>
>
>       <ds:X509Data>
>
>                       <ds:X509Certificate>...</ds:X509Certificate>
>
>       </ds:X509Data>
>
> </ds:KeyInfo>
>                                                 </ds:Signature>
>                                 </saml1:Assertion>
>                 </saml1:Advice>
>                 <saml1:AuthenticationStatement 
> AuthenticationInstant="2014-10-01T13:02:17.585Z"
> AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:X509-PKI">
>                                 <saml1:Subject>
>                                    ...
>                                 </saml1:Subject>
>                 </saml1:AuthenticationStatement>
>                 <ds:Signature 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#
> ">
>                                 <ds:SignedInfo>
>                                                 
> <ds:CanonicalizationMethod 
> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
>                                                 <ds:SignatureMethod 
> Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
>                                                 <ds:Reference 
> URI="#_99B35E24E753D60162141216853759332">
>
> <ds:Transforms>
>
>       <ds:Transform Algorithm="
> http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
>
>       <ds:Transform 
> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
>
> </ds:Transforms>
>
> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
>
> <ds:DigestValue>OnmMYA4JG7RZRa1+NdrGAcHt5K03l1ZLCufXdF+qXmI=</ds:DigestValue>
>                                                 </ds:Reference>
>                                 </ds:SignedInfo>
>                                 <ds:SignatureValue>...</ds:SignatureValue>
>                                 <ds:KeyInfo>
>                                                 <ds:X509Data>
>
> <ds:X509Certificate>...</ds:X509Certificate>
>                                                 </ds:X509Data>
>                                 </ds:KeyInfo>
>                 </ds:Signature>
> </saml1:Assertion>
>
>
> Stephen W. Chappell
>



--
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to