Signing message elements in generator security constraints with an XPath expression

The following information explains the difference between using an XPath expression and using keywords to specify which part of the message to sign:

XPath expression

Specify any part of the message using an XPath expression. XPath is a language that is used to address parts of an XML document. You can find information on XPath syntax at the following Web site: http://www.w3.org/TR/1999/REC-xpath-19991116.

Keywords

Specify only elements within the message using predefined keywords.

Complete the following steps to specify which message parts to digitally sign when you configure the generator security constraints for either the request generator or the response generator. The request generator is configured for the client and the response generator is configured for the server. In the following steps, configure either the client-side extensions in step 2 or the server-side extensions in step 3.

  1. Click Window > Open Perspective > J2EE.

  2. Optional:

    Locate the client-side extensions using the Project Explorer window. The Client Deployment Descriptor window is displayed. This Web service contains the extensions that you need to configure.

    1. Expand the Web Services > Client section and double-click the name of the Web service.

    2. Click the WS Extension tab and expand the Request Generator Configuration section.

  3. Optional:

    Locate the server-side extensions using the Project Explorer window. The Web Services Editor window is displayed. This Web service contains the extensions that you need to configure.

    1. Expand the Web Services > Services section and double-click the name of the Web service.

    2. Click the Extensions tab and expand the Response Generator Service Configuration Details section.

  4. Expand the Integrity section. Integrity refers to digital signature while confidentiality refers to encryption. Integrity decreases the risk of data modification when you transmit data across a network. For more information on digitally signing Simple Object Access Protocol (SOAP) messages, see XML digital signature.

  5. Click Add to indicate which parts of the message to sign. The Integrity Dialog window is displayed.

    1. Specify a name for the integrity element in the Integrity Name field. For example, you might specify int_xpath.

    2. Specify an order in the Order field. The value, which must be a positive integer value, specifies the order in which the digital signature is processed. An order value of 1 specifies that the signing is done first.

  6. Click Add under the Message Parts section of the Integrity Dialog window.

    1. Select the Message parts dialect from the Message Parts section of the Integrity Dialog window. If you select the http://www.w3.org/TR/1999/REC-xpath-19991116 dialect, the message part that will be signed is specified by an XPath expression.

    2. Specify the message part to be signed using an XPath expression in the Message parts keyword field. For example, to specify that the body is signed, you might add the following expression in the Message parts keyword field as one continuous line:

      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope']/*
      [namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Body']

  7. Click OK to save the configuration changes.

    Note: These configurations for the generator and the consumer must match.

    In addition to the message parts, you also can specify that WebSphere® Application Server sign the nonce and timestamp elements. For more information, see the following articles:

After you specify which message parts to digitally sign, specify which method is used to digitally sign the message. For more information, see Configuring signing information for the generator binding with an assembly tool.

 

Related concepts

XML digital signature

 

Related tasks

Adding a stand-alone time stamp to generator security constraints

Adding time stamps for integrity to generator security constraints with keywords

Adding a nonce for integrity in generator security constraints with keywords

Configuring signing information for the generator binding with an assembly tool