I need send a message to a Java WebService from a .NET Client. When I
use WSE 3.0 to send the message, by default in SOAP Header, WSE adds
Timestamp.
Java WebService doesn´t understand this header and I need to remove
it, how can I remove Timestamp header in WSE 3.0?
You need to create a custom filter and place it at the end of the WSE
pipeline, and then get hold of the soap message, and manually remove
this element. There maybe an easier way but I haven't come across it!
1. You can create a custom SoapFilter, then a custom PolicyAssertion
that creates this custom SoapFilter and then associate the assertion to
the policy in the config file (e.g. wse3policyCache.config).
Refer to WSE 3.0 local help, url:
ms-help://MS.WSE30.1033/WSE3.0/html/2169b720-80b1-46a8-a990-7e9619de1ea9.htm
Also have a look at the sample here (c#):
C:\Program Files\Microsoft
WSE\v3.0\Samples\CS\QuickStart\Basic\CustomPolicyTraceAssertion
2. Basically once you have your custom filter in the pipeline, you can
override the ProcessMessage method of your custom SoapFilter class and
search remove the timestamp element in the soap header of the soap
envelope that is passed into this method.
Rasika.
I have already your solution but it not works. The solution is to
override SecureMessage method, because Timestamp header is not in Soap
Header until the call to SecureMessage method, not in ProcessMessage.
In addition, you have to remove the option to sign the timestamp header.
Othewise, the signature created by WSE will have a reference to a
non-existing element.
Regards,
Pablo Cibraro.
"F.Mondelo" <felixm...@gmail.com> wrote in message
news:1161944309.4...@k70g2000cwa.googlegroups.com...
//wsse:Security/wsu:Timestamp
node and then remove it, and in the output xml it no longer appears.
However your method seems to be a better way to do it as to my
understanding it is removing the timestamp earlier, if not before it is
even added.
Rasika.