Thanks for another timely response! Sounds like the message level policies for endpoints is the best solution. I can hold off further work on this until that becomes available.
If I need something sooner, I guess one approach would be to use a custom mediator to add the SOAP header, WS-Security stuff, and then not to enableSec when sending the message? That way, I don't presume Rampart would have any expectations about expecting wsse in the response. jeff On Sun, Jun 8, 2008 at 6:26 PM, Ruwan Linton <[EMAIL PROTECTED]> wrote: > Hi Jeff, > > Nice to hear that you got it to work :-) ; See my comments in-line... > > On Mon, Jun 9, 2008 at 3:59 AM, Jeff Davis <[EMAIL PROTECTED]> wrote: > > > I'm sure you guys are sick of hearing from me by now :-). > > > > That change you guys had suggested corrected the issue with the ReplyTo > > being generated. That's the good news! I do have one last issue (I am so > > close to getting everything entirely working). I believe this is also do > to > > a buggy Amazon WS implementation. That is, there response doesn't contain > > any WSSE security stuff in their response. Here's an example of what I > > receive from them: > > > Jeff, I guess this is accepted and known as *message level policies*, so > the > in-message contains a security policy and the out-message does not. > > > > > > > > <soapenv:Envelope xmlns:soapenv=" > http://schemas.xmlsoap.org/soap/envelope/ > > "> > > <soapenv:Header> > > <wsa:RelatesTo xmlns:wsa="http://www.w3.org/2005/08/addressing" > > > > > >urn:uuid:A25F54392EB2D8B86E1212962691230477001-1880534923</wsa:RelatesTo> > > <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing" > > >http://www.w3.org/2005/08/addressing/anonymous</wsa:To> > > <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing > > ">ListDomains:Response</wsa:Action> > > <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing" > > >urn:uuid:337570bf-2dd7-4e5d-a578-3a57800ec5e4</wsa:MessageID> > > </soapenv:Header> > > <soapenv:Body> > > <ListDomainsResponse xmlns=" > > http://sdb.amazonaws.com/doc/2007-11-07/ > > "> > > <ListDomainsResult> > > <DomainName>test</DomainName> > > </ListDomainsResult> > > <ResponseMetadata> > > > <RequestId>337570bf-2dd7-4e5d-a578-3a57800ec5e4</RequestId> > > <BoxUsage>0.0000071759</BoxUsage> > > </ResponseMetadata> > > </ListDomainsResponse> > > </soapenv:Body> > > </soapenv:Envelope> > > > > > > Apparently Rampart anticipates a WS-Security in the response, but as you > > can > > see, it's not present. I've tried identifying where in the WS-Policy > > configuration I can have that turned off, but I don't see anything. > > > > I could probably add it myself, but not sure how to do this without > > resorting to a custom mediator of some sort, since I don't believe XSTL > or > > Script mediators have access to the SOAP header in the response? > > > Actually both the Script mediator and the XSLT mediator has the access to > SOAP headers, but I don't see none of these to be fitting to your problem > because Rampart is going to throw an error upon receiving this message if > you engage security to the outbound message. By the way, what is your new > configuration. Are you forwarding the message from the client without > modifying the security headers? Or do you engage security on the outbound > message on the endpoint? > > If it is the former, we should be able to use a custom mediator, but if > that > is the later we need a small improvement on the Synapse side, which Asankha > has pointed. (Message level policies for the outbound messages on endpoint > level) > > > > > > > > Upon conclusion of this whole exercise, I will get something written up > for > > others who wish to use Synapse in conjunction with Amazon's web services. > > > This is perfect. I will help you through to get this working. If we need to > implement message level policies for endpoints I can work on that soon so > that we can include that on the point release that we are planing soon > after > the 1.2 with AXIOM improvements. > > Thanks, > Ruwan > > > > As > > you know, AWS is becoming very popular, especially EC2 and S3. My hope > is > > to use Synapse as proxy/mediator that will receive outbound, non > > WS-Security > > calls to AWS add on the appropriate WS-Security, then forward to AWS. > > > > jeff > > > > On Sun, Jun 8, 2008 at 12:35 PM, Paul Fremantle <[EMAIL PROTECTED]> > wrote: > > > > > Ruwan > > > > > > I think its enough to set the anonymous one as long as we send it. > > > That might just fix everything. > > > > > > Paul > > > > > > On Sun, Jun 8, 2008 at 2:22 PM, Ruwan Linton <[EMAIL PROTECTED]> > > > wrote: > > > > Hi Jeff and Paul, > > > > > > > > I was able to reproduce the issue, basically whatever we specify as > the > > > > ReplyTo header Addressing module changes it to anonymous for the > > outbound > > > > message and neglects sending it. So setting the ReplyTo header is not > > > > effective for the moment. Jeff, could you please file a JIRA for > this. > > At > > > > the same time I had a look at what Paul proposed and it seems to work > > but > > > > still it is just the anonymous address but not the one we set. You > > could > > > use > > > > the property mediator at the axis2-client scope to set this property > as > > > > follows to include the anonymous header; > > > > > > > > <syn:property name="includeOptionalHeaders" value="true" > > > > scope="axis2-client"/> > > > > > > > > Or if you use separateListener attribute to true with the > > > enableAddressing > > > > tag then you can see the non anonymous ReplyTo header is being sent > to > > > the > > > > service. > > > > > > > > I will look for a solution to this issue ASAP. Thanks Jeff for > pointing > > > this > > > > out. > > > > > > > > Thanks, > > > > Ruwan > > > > > > > > On Sun, Jun 8, 2008 at 1:40 PM, Paul Fremantle <[EMAIL PROTECTED]> > > wrote: > > > > > > > >> 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 > > > >> > > > > > > > > > > > > > > > > -- > > > > 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 > > > > > > > > > -- > Ruwan Linton > http://www.wso2.org - "Oxygenating the Web Services Platform" >
