Before you begin
Prior to completing this task, you must import your application into
an assembly tool. For information on how to import your application, see
Importing enterprise applications.
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.
Why and when to perform this task
This task is used to specify that a time stamp is embedded in a particular
element and that the element is encrypted. Complete the following steps to
specify the time stamp for confidentiality using an XPath expression 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, you must configure either the client-side extensions in step 2 or the
server-side extensions in step 3.
Steps for this task
- Start the assembly tool and click Window > Open Perspective
> J2EE.
- 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.
Complete the following steps to locate the client-side extensions:
- Expand the Web Services > Client section and double-click the
name of the Web service.
- Click the WS Extension tab and expand the Request Generator
Configuration section.
- 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. Complete
the following steps to locate the server-side extensions:
- Expand the Web Services > Services section and double-click
the name of the Web service.
- Click the Extensions tab and expand the Response Generator
Service Configuration Details section.
- Expand the Confidentiality section. Confidentiality
refers to encryption while integrity refers to digital signing. Confidentiality
reduces the risk of someone intercepting the message as it moves across a
network. With confidentiality specifications, the message is encrypted before
it is sent and decrypted when it is received at the intended target. For more
information on encryption, see XML encryption.
- Click Add to specify a time stamp for confidentiality.
The Confidentiality Dialog window is displayed. Complete the following
information to specify a configuration:
- Specify a name for the confidentiality element in the Confidentiality
Name field.
- Specify an order in the Order field. The value, which
must be a positive integer value, specifies the order in which the encryption
is processed. An order value of 1 specifies that the encryption is done first.
- Click Add under the Timestamp section of the Confidentiality
Dialog window. Complete the following steps to configure the time stamp information:
- Select the timestamp dialect from the Timestamp section.
The http://www.w3.org/TR/1999/REC-xpath-19991116 dialect specifies which
message part is encrypted using an XPath expression.
- Specify the message part to which a time stamp is added and
encrypted using an XPath expression in the Timestamp keyword field.
For example, to specify that a time stamp is added to the bodycontent
element and it is encrypted, you might add the following expression in the
Timestamp 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()='Bodycontent']
- Specify an expiration time for the time stamp in the Timestamp
expires field. The time stamp helps defend against replay attacks.
The lexical representation for the duration is the [ISO 8601] extended format PnYnMnDTnHnMnS,
where:
- P
- Precedes the date and time values.
- nY
- Represents the number of years in which the time stamp is in effect. Select
a value from 0 to 99 years.
- nM
- Represents the number of months in which the time stamp is in effect.
Select a value from 0 to 11 months.
- nD
- Represents the number of days in which the time stamp is in effect. Select
a value from 0 to 30 days.
- T
- Separates the date and time values.
- nH
- Represents the number of hours in which the time stamp is in effect. Select
a value from 0 to 23 hours.
- nM
- Represents the number of minutes in which the time stamp is in effect.
Select a value from 0 to 59 minutes.
- nS
- Represents the number of seconds in which the time stamp is in effect.
The number of seconds can include decimal digits to aribrary precision. You
can select a value from 0 to 59 for the seconds and from 0 to 9 for tenths
of a second.
For example, to indicate 1 year, 2 months, 3 days, 10 hours,
and 30 minutes, the format is P1Y2M3DT10H30M. Typically, you might
configure a message time stamp for between 10 and 30 minutes. For example,
10 minutes is represented as P0Y0M0DT0H10M0S.
- In the Message Parts section, click Add and select http://www.ibm.com/websphere/webservices/wssecurity/dialect-was
in the Message parts dialect field.
- In the Message Parts section, select the message parts keyword.
Important: You must define at least one message part in
Message Parts section in order to specify Timestamp for Confidentiality. The
selection of message part here is for encrypting a message part in addition
to the parent element of the timestamp
- Click OK to save the configuration changes.
Note: These
configurations for the consumer and the generator must match.
In
addition to the time stamp, you can specify that the nonce is signed. For
more information, see the following articles: