all groups > dotnet web services enhancements > january 2005 >
You're in the

dotnet web services enhancements

group:

WSE pipeline with no filters generates some SOAP headers


Re: WSE pipeline with no filters generates some SOAP headers Dilip Krishnan
1/20/2005 7:12:00 PM
dotnet web services enhancements:
Hello AVS,
The only issue that you would potentially have is if any soap header
is marked with the must understand attribute. WSE does add addressing headers
for the simple reason that many of the WS-* specs that WSE implements use
addressing headers. This is not mandatory. The filters dont generate the
headers but its the serialization/deserialization mechanism of the WSE soap
stack.

HTH
Regards,
Dilip Krishnan
MCAD, MCSD.net
dkrishnan at geniant dot com
http://www.geniant.com

[quoted text, click to view]

WSE pipeline with no filters generates some SOAP headers AVS
1/20/2005 7:56:50 PM
I am using IDE generated proxy with WebServicesClientProtocol as a base
class (which means using WSE and its pipeline).
Before invoking web service I get Pipeline object from this proxy and clear
all InputFilters collection. When I trace what is actually sent I still see
Soap headers
enjected into message, for ex: wsa:To, wsa:Reply which sound to be from
WS-Addressing if I am not mistaken.

Anyway the question: why does proxy class generate these headers when no
filters exist in the pipeline and "traditional" (with no soap headers)
payload is expected?

Also this actually produces some interesting results: If I call Web service
on the server side which is also implemented with WSE but does not use any
filters it may throw an exception if requested URL does not match wsa:To
header value - and this all because base classes derivd from WSE bases,
rather then System.Web.Services ????????

Thankx,
Andrew

Re: WSE pipeline with no filters generates some SOAP headers Dilip Krishnan
1/21/2005 10:11:05 AM
Hello Andrew,
Don't use WSE if you dont need the WS-* spec as part of your soap stack

HTH
Regards,
Dilip Krishnan
MCAD, MCSD.net
dkrishnan at geniant dot com
http://www.geniant.com

[quoted text, click to view]

Re: WSE pipeline with no filters generates some SOAP headers SA
1/21/2005 11:07:40 AM
How about not using WSE if you don't need any of its features?

--

---

Sven.

[quoted text, click to view]

Re: WSE pipeline with no filters generates some SOAP headers Andrew
1/21/2005 11:47:57 AM
This does not make sence - why is that addressing headers should always be
present when using WSE?
Why can't I use WSE and stay on a traditional (and standard) SOAP stack?

Anyway, the real question now: is there any way to avoid
serialization/deserialization of these headers if I don't care to have them
when using WSE?

Thanks,
Andrew

[quoted text, click to view]

Re: WSE pipeline with no filters generates some SOAP headers Andrew
1/21/2005 1:55:41 PM
That's the thing! - I need to use WSE for WS-Security, but I don't want to
deal with Addressing headers, just Security headers, because these
addressing headers (wsa:To) specifically screws me up
when I use WSE on top of my own Web Services infrastructure with multiple
hops and I do not want to modify soap payload (meaning wsa:To) during my
hops' processing. In other words my ultimate client send soap payload not
where it is actually executed but though some hops. I would like to (and I
should have been able) to twick only url-s , now I also have to twick soap
headers (:

[quoted text, click to view]

Re: WSE pipeline with no filters generates some SOAP headers Softwaremaker
1/23/2005 12:26:21 PM
Andrew,

I *think* I know what you are trying to get at. At the moment, I cannot
answer directly the question how not to serialize the addressing headers
while using WSE. However, I would think a "hack" can be done by writing a
SOAPOutputFilter to hook into the message and remove the headers *manually*.
I dont really know how that would affect the processing at the receiving end
though. Will have to look into it later to see how I could help.

On another note, the addressing headers should *not* be changed by any of
your intermediaries during hop-processing as it can be signed. If your
intermediaries are implemented using WSE and SOAPHTTPRouter as well, this
shouldnt be a problem as it will just forward the requests to the next node
or the ultimate receiver. It will not process the security headers that are
not meant for itself. (actorless attribute or actor attribute = final
destination). Having said that, your ultimate receiver should be expecting a
message that has addressing headers wsa:To meant for the first routing or
hop actor. This can be done by using the SOAPActor attribute on your Web
Service.
<SoapActor("http://localhost/dotnetproj/securesoapchain/Hop1/Router1.ashx").
...> The good thing about that is the client *technically" doesnt have to
know the address of the final destination.

Technically, you shouldnt have to change your addressing headers. I would
like to understand your concerns better. Is there is a reason for you doing
it ?

--
Thank you.

Regards,
William T (Softwaremaker)
http://www.softwaremaker.net/blog
=========================================

[quoted text, click to view]

Re: WSE pipeline with no filters generates some SOAP headers Softwaremaker
1/23/2005 12:28:50 PM
Andrew,

I *think* I know what you are trying to get at. At the moment, I cannot
answer directly the question how not to serialize the addressing headers
while using WSE. However, I would think a "hack" can be done by writing a
SOAPOutputFilter to hook into the message and remove the headers *manually*.
I dont really know how that would affect the processing at the receiving end
though. Will have to look into it later to see how I could help.

On another note, the addressing headers should *not* be changed by any of
your intermediaries during hop-processing as it can be signed. If your
intermediaries are implemented using WSE and SOAPHTTPRouter as well, this
shouldnt be a problem as it will just forward the requests to the next node
or the ultimate receiver. It will not process the security headers that are
not meant for itself. (actorless attribute or actor attribute = final
destination). Having said that, your ultimate receiver should be expecting a
message that has addressing headers wsa:To meant for the first routing or
hop actor. This can be done by using the SOAPActor attribute on your Web
Service.
<SoapActor("http://localhost/dotnetproj/securesoapchain/Hop1/Router1.ashx").
...> The good thing about that is the client *technically" doesnt have to
know the address of the final destination.

Technically, you shouldnt have to change your addressing headers. I would
like to understand your concerns better. Is there is a reason for you doing
it ?

--
Thank you.

Regards,
William T (Softwaremaker)
http://www.softwaremaker.net/blog
=========================================


[quoted text, click to view]

AddThis Social Bookmark Button