[prev in list] [next in list] [prev in thread] [next in thread] 

List:       woden-dev
Subject:    [jira] [Comment Edited] (WSS-616) STRTransform TransformException when manually adding SAML Assertio
From:       "Russell Orf (JIRA)" <jira () apache ! org>
Date:       2017-10-23 10:43:00
Message-ID: JIRA.13110036.1508258910000.33211.1508755380269 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/WSS-616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16214942#comment-16214942 \
] 

Russell Orf edited comment on WSS-616 at 10/23/17 10:42 AM:
------------------------------------------------------------

Omitting the SignedSupportingToken block from the policy does eliminate the error, \
however the request generated does not contain the wsse:SecurityTokenReference block \
as required by the service. Specifically, I need the request header to look like the \
below. How can I configure the policy to generate the SecurityTokenReference block?

{code:xml}
<env:Header>
  <wsse:Security>
    <saml:Assertion assertionID="myassertionid">
      ...
    </saml:Assertion>
    <!-- THIS BLOCK IS MISSING -->
    <wsse:SecurityTokenReference wsu:Id="SAMLStringId"> 
       <wsse:KeyIdentifier>myassertionid</wsse:KeyIdentifier>
    </wsse:SecurityTokenReference>
    <dsig:Signature>
       <dsig:SignedInfo>
        ...
       <!-- THIS BLOCK IS MISSING -->
       <dsig:Reference URI="#SAMLStringId">
         <dsig:Transforms>
           <dsig:Transform \
Algorithm="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STRTransform">
                
             <wsse:TransformationParameters \
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-security-secext-1.0.xsd">
                
               <dsig:CanonicalizationMethod \
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>  \
</wsse:TransformationParameters>  </dsig:Transform>
         </dsig:Transforms>
         <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
         <dsig:DigestValue>ADALEI;RGLADKJA</dsig:DigestValue>
       </dsig:Reference>
        ...
      </dsig:SignedInfo>
      <dsig:SignatureValue>aldka;slasdlfkajei</dsig:SignatureValue>
      <dsig:KeyInfo>
        <wsse:SecurityTokenReference>
          <wsse:KeyIdentifier>myassertionid</wsse:KeyIdentifier>
        </wsse:SecurityTokenReference>
      </dsig:KeyInfo>
    </dsig:Signature>
  </wsse:Security>
</env:Header>
{code}



was (Author: rorf):
Omitting the SignedSupportingToken block from the policy does eliminate the error, \
however the request generated does not contain the wsse:SecurityTokenReference block \
as required by the service. Specifically, I need the request header to look like the \
below. How can I configure the policy to generate the SecurityTokenReference block?

{code:xml}
<env:Header>
  <wsse:Security>
    <saml:Assertion assertionID="myassertionid">
      ...
    </saml:Assertion>
    <!-- THIS IS THE BLOCK THAT'S MISSING -->
    <wsse:SecurityTokenReference wsu:Id="SAMLStringId"> 
       <wsse:KeyIdentifier>myassertionid</wsse:KeyIdentifier>
    </wsse:SecurityTokenReference>
    <dsig:Signature>
       <dsig:SignedInfo>
        ...
       <dsig:Reference URI="#SAMLStringId">
         <dsig:Transforms>
           <dsig:Transform \
Algorithm="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STRTransform">
                
             <wsse:TransformationParameters \
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-security-secext-1.0.xsd">
                
               <dsig:CanonicalizationMethod \
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>  \
</wsse:TransformationParameters>  </dsig:Transform>
         </dsig:Transforms>
         <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
         <dsig:DigestValue>ADALEI;RGLADKJA</dsig:DigestValue>
       </dsig:Reference>
        ...
      </dsig:SignedInfo>
      <dsig:SignatureValue>aldka;slasdlfkajei</dsig:SignatureValue>
      <dsig:KeyInfo>
        <wsse:SecurityTokenReference>
          <wsse:KeyIdentifier>myassertionid</wsse:KeyIdentifier>
        </wsse:SecurityTokenReference>
      </dsig:KeyInfo>
    </dsig:Signature>
  </wsse:Security>
</env:Header>
{code}


> STRTransform TransformException when manually adding SAML Assertion via \
>                 SAMLCallback.setAssertionElement()
> ----------------------------------------------------------------------------------------------------------
>  
> Key: WSS-616
> URL: https://issues.apache.org/jira/browse/WSS-616
> Project: WSS4J
> Issue Type: Bug
> Components: WSS4J Core
> Affects Versions: 2.1.7
> Environment: Apache Tomcat 8.0.37
> Reporter: Russell Orf
> Assignee: Colm O hEigeartaigh
> Labels: security
> Attachments: catalina.out, service-client.war
> 
> 
> In Apache CXF v3.1.7, I have a JAX-WS web service client calling a service that \
> requires a HolderOfKey SAML Assertion. The assertions are from a custom service \
> that does not adhere to the WS-Trust SecureTokenService standard, so I am adding \
> them manually in a SAMLCallbackHander, using the callback.setAssertionElement() \
> method. When invoking the client, the WSS4J framework is unable to compute the \
> signature for the SecurityTokenReference header block, throwing the below error: {{
> javax.xml.crypto.dsig.XMLSignatureException: \
> javax.xml.crypto.dsig.TransformException: \
> org.apache.wss4j.common.ext.WSSecurityException: Referenced token \
> "id-of-SAML-assertion" not found at \
> org.apache.wss4j.dom.str.STRParserUtil.getTokenElement(StrParserUtil.java:314) at \
> org.apache.wss4j.dom.transform.STRTransformUtil.dereferenceSTR(STRTransformUtil.java:98)
>  at org.apache.wss4j.dom.transform.STRTransform.transformIt(STRTransform.java:195)}}
>  It appears that the SAML assertion DOM Element that is added via the \
> callback.setAssertionElement() method is not getting searched by the \
> STRParserUtil.getTokenElement() method.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic