cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Freeman Fang (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (CXF-3151) Invalid WS-A ReplyTo constant value used by WS-RM
Date Wed, 24 Nov 2010 07:59:14 GMT

     [ https://issues.apache.org/jira/browse/CXF-3151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Freeman Fang reassigned CXF-3151:
---------------------------------

    Assignee: Freeman Fang

> Invalid WS-A ReplyTo constant value used by WS-RM
> -------------------------------------------------
>
>                 Key: CXF-3151
>                 URL: https://issues.apache.org/jira/browse/CXF-3151
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.2.11
>            Reporter: Aki Yoshida
>            Assignee: Freeman Fang
>             Fix For: 2.2.12
>
>         Attachments: svndiff.zip
>
>
> There is an issue in the way how the current WS-RM implementation
> downgrades the WS-A namespace/constants to the 2004/08 version. I
> would like to first explain the problem and ask you which solution is
> preferred.
> CXF uses WS-A 2005/08 internally but for WS-RM, it uses the 2004/08
> version because the older WS-RM (1.0)
> requires the use of the 2004/08 version. So, it is correct to convert
> the internally used 2005/08 namespace/constants to their 2004/08
> counterparts.
> However, one problem is that the 2005/08 WS-A spec defined two constants
> http://www.w3.org/2005/08/addressing/anonymous
> http://www.w3.org/2005/08/addressing/none
> While the 2004/08 WS-A version seems to have only defined
> http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
> and not
> http://schemas.xmlsoap.org/ws/2004/08/addressing/role/none
> The current conversion used in CXF creates this undefined value and
> this is causing some interoperability issues.
> More concretely, when the WS-A ReplyTo element is set to the none
> value and this is serialized into the above undefined 2004/08 none
> constant, it is not recognized by some systems. According to the WS-RM
> 1.0, in such a case, the ReplyTo element should be omitted to convey
> this "none" value (as there is no "none" constant).
> Initially, I thought we should fix this issue by introducing a configurable property
"usingNoneAddress" for the addressing configuration bean to turn on or off the serialization
of the none address. However, this approach had a drawback on requiring a different default
value interpretation based on the used namespace versions (i.e., false for 2004/08 and true
for 2005/08) to make the test cases all work.
> Therefore, I am proposing the following approach to solve this issue.
> There is no configuration property. The serialization is determined by the addressing
namespace.  Under 2004/08, the none value is omitted from serialization, while under 2005/08,
the none value is serialized.
> This will work for all the current tests except for the testVersioning test of MAPTest.
This particular test uses the 2004/08 namespace and checks the presence of the ReplyTo header
in the SOAP header, even though the header is associated with the none value and therefore
it must not be present. In order to fix this test, I needed to modify the corresponding verification
classes so that the presence of the ReplyTo header is not verified when the 2004/08 namespace
is used.
> In summary, the changes that I suggest are as follows:
> For the runtime ws.addressing:
> org.apache.cxf.ws.addressing.soap.MAPCodec
>   The ReplyTo header will not be serialized with the invalid none value. In other words,
if the value is set to the none value while using the 2004/08 namespace.
> org.apache.cxf.ws.addressing.ContextUtils
>   The back channel will be found even when the ReplyTo header is missing.
> For the systests ws.addressing
> org.apache.cxf.systest.ws.addressing MAPTestBase
>   Its verifyHeaders method takes additionally a Boolean parameter replyToRequired to
indicate whether the presence of the ReplyTo header must be verified.
> org.apache.cxf.systest.ws.addressing HeaderVerifier
>   Its verify method call the above verityHeaders method with the replyToRequired parameter
set based on the namespace version.
> The svn diff files of the above changes are attached.
> Regards, Aki

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message