Tadayoshi Sato created CXF-5645:
-----------------------------------

             Summary: wsp:Optional isn't adhered to for WS-RM policy in WSDL
                 Key: CXF-5645
                 URL: https://issues.apache.org/jira/browse/CXF-5645
             Project: CXF
          Issue Type: Bug
          Components: WS-* Components
    Affects Versions: 2.7.10, 3.0.0-milestone2
            Reporter: Tadayoshi Sato


The {{wsp:Optional}} attribute doesn't work for WS-RM. As far as the specs tell 
both WS-Addressing and WS-RM 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 was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to