I am running the apache-cxf-3.1.3/samples/ws_security/sign_enc_policy sample 
client/server code.  I modified the policy to only do signature, no encryption.

I was curious to see how a custom SOAP header was handled with     
<sp:OnlySignEntireHeadersAndBody/>

So I added the second section of code below.

        System.out.println(wsdlURL);
        SOAPService ss = new SOAPService(wsdlURL, SERVICE_NAME);
        Greeter port = ss.getPort(PORT_NAME, Greeter.class);

        org.apache.cxf.endpoint.Client proxy = ClientProxy.getClient(port);
        List<Header> headersList = new ArrayList<Header>();
        Header testHeader = new Header(new QName("http://com.test/SampleWS";, 
"tcn"), "abc123", new JAXBDataBinding(String.class));
        headersList.add(testHeader);
        proxy.getRequestContext().put(Header.HEADER_LIST, headersList);

I can see my header in the request SOAP now.  However, one digest is pointing 
to the timestamp, and the other digest is pointing to the body based on the 
"wsu:Id".  Will my custom header not be included in the digest that is signed 
using WS-Security?

SOAP example below:

  <soap:Header>
    <tcn xmlns="http://com.test/SampleWS";>abc123</tcn>
    <wsse:Security 
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
 soap:mustUnderstand="1">
      <wsu:Timestamp wsu:Id="TS-e092f8db-397a-47c2-8415-9c7416d03356">
        <wsu:Created>2015-10-16T18:18:23.145Z</wsu:Created>
        <wsu:Expires>2015-10-16T18:23:23.145Z</wsu:Expires>
      </wsu:Timestamp>
      <wsse:BinarySecurityToken 
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary";
 
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3";
 wsu:Id="X509-6a1a648f-2077-49b0-ad52-5dd39839bb2d">xyz 
</wsse:BinarySecurityToken>
      <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
Id="SIG-68e6b7c4-63e5-4a6a-907d-4ca8e629230c">
        <ds:SignedInfo>
          <ds:CanonicalizationMethod 
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";>
            <ec:InclusiveNamespaces 
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"; PrefixList="soap"/>
          </ds:CanonicalizationMethod>
          <ds:SignatureMethod 
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
          <ds:Reference URI="#TS-e092f8db-397a-47c2-8415-9c7416d03356">
            <ds:Transforms>
              <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";>
                <ec:InclusiveNamespaces 
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"; PrefixList="wsse soap"/>
              </ds:Transform>
            </ds:Transforms>
            <ds:DigestMethod 
Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
            
<ds:DigestValue>+4djih/y2x4YOGLvfnBvf+LGQFqF6P4Rhh8V9/I5N6o=</ds:DigestValue>
          </ds:Reference>
          <ds:Reference URI="#_913bf553-50ca-4bab-a758-168d44e01801">
            <ds:Transforms>
              <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";>
                <ec:InclusiveNamespaces 
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"; PrefixList=""/>
              </ds:Transform>
            </ds:Transforms>
            <ds:DigestMethod 
Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
            
<ds:DigestValue>sH3LRyoMxCivKqBU8sFESi3BxaBryVXhrcczVJHK2pA=</ds:DigestValue>
          </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>xyz</ds:SignatureValue>
        <ds:KeyInfo Id="KI-35982ca6-8c19-4e92-b90c-33d18f6f6c9d">
          <wsse:SecurityTokenReference 
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
 wsu:Id="STR-fa6ba6f7-c883-4726-99b4-b2c869488983">
            <wsse:Reference URI="#X509-6a1a648f-2077-49b0-ad52-5dd39839bb2d" 
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
          </wsse:SecurityTokenReference>
        </ds:KeyInfo>
      </ds:Signature>
    </wsse:Security>
  </soap:Header>

Reply via email to