Jeff Thanks for the feedback. Please can you submit your code as a sample? We will definitely try to fix the bug. I agree rampart should not be causing addressing headers to appear. The reason that the anonymous header is being stripped out is because the WS-A spec says that no reply-to is equivalent to anonymous, so there is a bug in Amazon. However, there is a way in Axis2 to turn this behaviour off.
options.setProperty(AddressingConstants.INCLUDE_OPTIONAL_HEADERS, Boolean.TRUE); So another way to sort that out will be to set that property on the Axis2 MC. Paul On Sun, Jun 8, 2008 at 6:24 AM, Jeff Davis <[EMAIL PROTECTED]> wrote: > Turns out my work-around really didn't solve the problem (because > Axis/Rampart is anticipating a WS-Addressing reply, and since I've stripped > it out downstream, I'd have to add it back manually). > > The crux of the issue is that I cannot figure out how to added this: > > <wsa:ReplyTo><wsa:Address>http://www.w3.org/2005/08/addressing/anonymous > </wsa:Address></wsa:ReplyTo> > > To my WS-Addressing part of my SOAP header. > > I believe it ought to be present, but it's not, as I've confirmed through > TCPMon. I've tried everything I can think of to get it to appear, but thus > far have had no luck. > > Thanks, > > jeff > > On Sat, Jun 7, 2008 at 9:23 PM, Jeff Davis <[EMAIL PROTECTED]> wrote: > >> Maybe it's not a bug but a feature request :-). >> >> I see two issues: >> >> 1) WS-Security automatically adds undesirable WS-Addressing elements (IMO, >> this should only happen when enableAddressing is specified). I don't see >> anything in the WS-Security spec that indicates WS-Addressing is required. I >> don't see a way to turn this behavior off in Synapse, without resorting to a >> workaround such as I demonstrated (i.e., chaining together 2 sequences, >> within one removing the undesirable WS-Addressing elements). >> >> 2) I didn't see a a way to add the ReplyTo WS-Addressing element (and it's >> child node Address) using the header mechanism (or property, for that >> matter). This was the crux of my issue, as, for some reason, Amazon expected >> a ReplyTo. I suspect this is probably easily possible, but just wasn't able >> to figure it out. >> >> Btw, I was able to successfully interact with Amazon's SimpleDB now! I hope >> to writeup a blog entry on my findings (I am actually also writing the book >> called Open Source SOA from Manning, and I am including a big chapter on >> Synapse, which I am a huge fan of). >> >> To be honest, a lot of this WS-Security stuff is rather new to me, so I'm >> feverishly trying to get a handle on it (the Manning book SOA Security has >> been a big help). I have used PasswordDigest mechanism a lot, but not that >> signing with x509 certs as much. >> >> jeff >> >> >> On Sat, Jun 7, 2008 at 8:42 PM, Ruwan Linton <[EMAIL PROTECTED]> >> wrote: >> >>> Hi Jeff, >>> >>> What is the bug from your POV? I am sorry, I don't see a bug here..... >>> >>> Well you could go ahead and file a JIRA so that we can evaluate what is >>> the >>> issue that you have faced and see whether is there something wrong with >>> Synapse, but I assume this is rather a configuration error. >>> >>> Thanks, >>> Ruwan >>> >>> >>> On Sun, Jun 8, 2008 at 7:45 AM, Jeff Davis <[EMAIL PROTECTED]> wrote: >>> >>> > As a follow-up, I was running it through tcpmon, which is why it had the >>> > strange address. >>> > >>> > Yes, I am running the latest 1.2 build from the URL provided me last >>> > Thursday, I believe. >>> > >>> > Should I submit this is a bug? >>> > >>> > On Sat, Jun 7, 2008 at 8:11 PM, Ruwan Linton <[EMAIL PROTECTED]> >>> > wrote: >>> > >>> > > Hi Jeff, >>> > > >>> > > If you enable addressing to the outbound message then synapse should >>> be >>> > > sending the ReplyTo header as appropriate. May be amazon is not >>> accepting >>> > > anonymous ReplyTo headers, so assuming that you are using the 1.2 >>> build >>> > > here >>> > > is the proposed solution to this; >>> > > >>> > > <definitions xmlns="http://ws.apache.org/ns/synapse"> >>> > > <localEntry key="sec_policy" >>> > > src="file:repository/conf/sample/resources/policy/amazon.xml"/> >>> > > >>> > > <in> >>> > > <send> >>> > > <endpoint name="secure"> >>> > > <address uri="http://localhost:8086"> >>> > > <enableSec policy="sec_policy"/> >>> > > <enableAddressing separateListener="true"/> >>> > > </address> >>> > > </endpoint> >>> > > </send> >>> > > </in> >>> > > <out> >>> > > <header name="wsse:Security" action="remove" xmlns:wsse=" >>> > > http://www.w3.org/2005/08/addressing"/> >>> > > <send/> >>> > > </out> >>> > > </definitions> >>> > > >>> > > The above configuration should work, but please note that you need to >>> > > change >>> > > the address uri of the endpoint in the above configuration from " >>> > > http://localhost:8086" to "AMAZON_URL" >>> > > >>> > > If this is not working could you please attach the TCPMon out put of >>> the >>> > > outbound message which is going to AMAZON (after changing important >>> > > information) and the message received from AMAZON. If you don't want >>> to >>> > > post >>> > > it publicly you may send it to me (mailto:[EMAIL PROTECTED] < >>> [EMAIL PROTECTED] >>> > >) >>> > > >>> > > Thanks, >>> > > Ruwan >>> > > >>> > > On Sun, Jun 8, 2008 at 7:01 AM, Jeff Davis <[EMAIL PROTECTED]> >>> wrote: >>> > > >>> > > > I did a little research, and I haven't seen anything in the standard >>> > that >>> > > > indicates WS-Security requires WS-Addressing. Unfortunately, it >>> > doesn't >>> > > > appear as though setting the header has any impact (further, if it >>> did, >>> > > the >>> > > > ReplyTo has a child element for the Address, so not sure how that >>> would >>> > > be >>> > > > added). Here's my configuration: >>> > > > >>> > > > <definitions xmlns="http://ws.apache.org/ns/synapse"> >>> > > > <localEntry key="sec_policy" >>> > > > src="file:repository/conf/sample/resources/policy/amazon.xml"/> >>> > > > >>> > > > <in> >>> > > > <header name="ReplyTo" action="set" value=""/> >>> > > > <send> >>> > > > <endpoint name="secure"> >>> > > > <address uri="http://localhost:8086"> >>> > > > <enableSec policy="sec_policy"/> >>> > > > <enableAddressing/> >>> > > > </address> >>> > > > </endpoint> >>> > > > </send> >>> > > > </in> >>> > > > <out> >>> > > > <send/> >>> > > > </out> >>> > > > </definitions> >>> > > > >>> > > > In lieu of the above header, I also tried: >>> > > > >>> > > > <header name="wsse:Security" action="remove" >>> > > > xmlns:wsse="http://www.w3.org/2005/08/addressing"/> >>> > > > >>> > > > (I also tried removing the <enableAddressing/> node for each test). >>> > > > >>> > > > To recap my issue, it seems as though Amazon AWS (at least for >>> SimpleDB >>> > > > service) requires the ReplyTo WS-Addressing element, if >>> WS-Addressing >>> > is >>> > > > used. I haven't found a way to remove WS-Addressing generated >>> > > automatically >>> > > > by Synapse when WS-Security is used, and I haven't figure out how to >>> > add >>> > > > ReplyTo (and it's child Address node) to the outbound message. >>> > > > >>> > > > Anyone have any work-arounds? Maybe I'll try chaining together some >>> > > things >>> > > > to see if I can devise something. >>> > > > >>> > > > Thanks, >>> > > > >>> > > > jeff >>> > > > >>> > > > >>> > > > On Sat, Jun 7, 2008 at 9:25 AM, Asankha C. Perera <[EMAIL PROTECTED] >>> > >>> > > > wrote: >>> > > > >>> > > > > Hi Jeff >>> > > > > >>> > > > >> To be honest, I'm not entirely certain how to add it in the >>> Header >>> > > > >> mediator, >>> > > > >> as you allude to. I did try various permutations of using the >>> > property >>> > > > and >>> > > > >> header nodes within the <in>, but nothing ever appeared. >>> > > > >> >>> > > > >> >>> > > > > I am sorry.. I had made a mistake in my reply earlier.. to set the >>> > > > ReplyTo >>> > > > > header to something, you will use "<header name="ReplyTo" >>> > value="..."/> >>> > > > > format.. If you are familiar with using TCPMon, you can place it >>> > > between >>> > > > > your service and Amazon and route the message through it to get a >>> > trace >>> > > > of >>> > > > > the messages. This will help you and us to solve any problems. >>> > > > > >>> > > > >> Obviously, Amazon's service is not entirely compliant with the >>> > > > WS-Security >>> > > > >> standards. Even in their section under WS-Security SOAP, they >>> state >>> > > that >>> > > > >> "if >>> > > > >> you're using WS-Addressing, we recommend you also sign the Action >>> > and >>> > > To >>> > > > >> header elements" (I haven't figured out how to do that yet, but >>> I'll >>> > > dig >>> > > > >> into that). >>> > > > >> >>> > > > >> >>> > > > > If you are ok to share your configuration/scenario with us or let >>> us >>> > > try >>> > > > > some simple sample to reproduce the issue you are facing, one of >>> the >>> > > > > developers would be able to tell you exactly whats wrong, and what >>> > you >>> > > > could >>> > > > > do to get past the problem >>> > > > > >>> > > > > asankha >>> > > > > >>> > > > >>> > > >>> > > >>> > > >>> > > -- >>> > > Ruwan Linton >>> > > http://www.wso2.org - "Oxygenating the Web Services Platform" >>> > > >>> > >>> >>> >>> >>> -- >>> Ruwan Linton >>> http://www.wso2.org - "Oxygenating the Web Services Platform" >>> >> >> > -- Paul Fremantle Co-Founder and CTO, WSO2 Apache Synapse PMC Chair OASIS WS-RX TC Co-chair blog: http://pzf.fremantle.org [EMAIL PROTECTED] "Oxygenating the Web Service Platform", www.wso2.com
