]
Tadayoshi Sato commented on JBWS-3777:
--------------------------------------
With the help of Jim, I finally realised that this bug originates from CXF; I confirmed
that it also occurs in bare CXF {{2.7.10}} and also in {{3.0.0-milestone2}}.
CXF-5645: wsp:Optional isn't adhered to for WS-RM policy in WSDL
----------------------------------------------------------------
Key: JBWS-3777
URL:
https://issues.jboss.org/browse/JBWS-3777
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: jbossws-cxf
Affects Versions: jbossws-cxf-4.2.3
Environment: Red Hat JBoss EAP 6.2.0
Reporter: Tadayoshi Sato
Attachments: ws-rm.zip
Please port the fix for [
CXF-5645|https://issues.apache.org/jira/browse/CXF-5645] to
JBoss WS CXF.
Here is the original issue description:
The {{wsp:Optional}} attribute doesn't work for WS-RM in JBoss WS CXF. As far as the
specs tell both WS-Addressing 1.0 and WS-RM 1.1 should support {{wsp:Optional}}, that is,
if {{wsp:Optional}} is set to {{true}} on a WS-RM policy the WS-RM policy should become
optional -- the endpoint should allow both messages with and without WS-RM \[1\]. However,
my experimentation showed that it actually doesn't.
What I did is as follows (see the attached reproducer for details):
# Configured in WSDL ({{greeting.wsdl}}) an endpoint as optionally WS-RM enabled like the
following:
{code:xml}
<wsdl:binding name="GreetingServiceSoapBinding"
type="tns:GreetingService">
<wsp:Policy
xmlns:wsp="http://www.w3.org/2006/07/ws-policy">
<wsam:Addressing
xmlns:wsam="http://www.w3.org/2007/02/addressing/metadata"
wsp:Optional="true" />
<wsrmp:RMAssertion
xmlns:wsrmp="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
wsp:Optional="true" />
</wsp:Policy>
...
{code}
# Sent a WS-RM unaware (= no SOAP header) SOAP request from the client but got the
following SOAP Fault:
{code:xml}
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>WS-Addressing is required by this endpoint.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
{code}
[1] In WS-RM Policy 1.1 p.8:
{quote}
/wsrmp:RMAssertion/@wsp:Optional="true"
Per WS-Policy, this is compact notation for two policy alternatives, one with and one
without the assertion. The intuition is that the behavior indicated by the assertion is
optional, or in this case, that WS-ReliableMessaging MAY be used.
{quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: