cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aki Yoshida (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-5827) Use only local name matching for inbound rpc/literal processing to support some older rpc/literal implementation
Date Mon, 30 Jun 2014 14:43:25 GMT

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

Aki Yoshida updated CXF-5827:
-----------------------------

    Description: 
Although WS-i BP R2735 states the part parameter elements must be in no namespace, some old
rpc/literal implementation prior to WS-I BP use qualified elements.

In fact, many rpc/literal services in production use such older implementation and there is
a benefit in tolerating namespaced elements. 

RPCInInterceptor.java has the following comment to address this point.
{code}
156	                // WSI-BP states that RPC/Lit part accessors should be completely unqualified
157	                // However, older toolkits (Axis 1.x) are qualifying them.   We'll go
158	                // ahead and just match on the localpart.   The RPCOutInterceptor
159	                // will always generate WSI-BP compliant messages so it's unknown if
160	                // the non-WSI-BP toolkits will be able to understand the CXF
161	                // generated messages if they are expecting it to be qualified.
162	                Iterator<MessagePartInfo> partItr = msg.getMessageParts().iterator();
163	                while (!qn.getLocalPart().equals(part.getConcreteName().getLocalPart())
164	                    && partItr.hasNext()) {
165	                    part = partItr.next();
166	                }
167	                
168	                if (!qn.equals(part.getConcreteName())) {
169	                    throw new Fault(
170	                                    new org.apache.cxf.common.i18n.Message(
171	                                                                "UNKNOWN_RPC_LIT_PART",
172	                                                                 LOG,
173	                                                                 qn));
{code}

However, line 168 is rejecting the namespace qualified parameter name.

This patch changes the above if-statement to use only the local name comparison.


   

  was:
Although WS-i BP R2735 states the part parameter elements must be in no namespace, some old
rpc/literal implementation prior to WS-I BP use qualified elements.

In fact, most rpc/literal services in production use such older implementation and there is
a benefit in tolerating namespaced elements. 

RPCInInterceptor.java has the following comment to address this point.
{code}
156	                // WSI-BP states that RPC/Lit part accessors should be completely unqualified
157	                // However, older toolkits (Axis 1.x) are qualifying them.   We'll go
158	                // ahead and just match on the localpart.   The RPCOutInterceptor
159	                // will always generate WSI-BP compliant messages so it's unknown if
160	                // the non-WSI-BP toolkits will be able to understand the CXF
161	                // generated messages if they are expecting it to be qualified.
162	                Iterator<MessagePartInfo> partItr = msg.getMessageParts().iterator();
163	                while (!qn.getLocalPart().equals(part.getConcreteName().getLocalPart())
164	                    && partItr.hasNext()) {
165	                    part = partItr.next();
166	                }
167	                
168	                if (!qn.equals(part.getConcreteName())) {
169	                    throw new Fault(
170	                                    new org.apache.cxf.common.i18n.Message(
171	                                                                "UNKNOWN_RPC_LIT_PART",
172	                                                                 LOG,
173	                                                                 qn));
{code}

However, line 168 is rejecting the namespace qualified parameter name.

This patch changes the above if-statement to use only the local name comparison.


   


> Use only local name matching for inbound rpc/literal processing to support some older
rpc/literal implementation
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-5827
>                 URL: https://issues.apache.org/jira/browse/CXF-5827
>             Project: CXF
>          Issue Type: Improvement
>          Components: Soap Binding
>    Affects Versions: 2.7.11, 2.6.14, 3.0.0
>            Reporter: Aki Yoshida
>            Assignee: Aki Yoshida
>
> Although WS-i BP R2735 states the part parameter elements must be in no namespace, some
old rpc/literal implementation prior to WS-I BP use qualified elements.
> In fact, many rpc/literal services in production use such older implementation and there
is a benefit in tolerating namespaced elements. 
> RPCInInterceptor.java has the following comment to address this point.
> {code}
> 156	                // WSI-BP states that RPC/Lit part accessors should be completely
unqualified
> 157	                // However, older toolkits (Axis 1.x) are qualifying them.   We'll
go
> 158	                // ahead and just match on the localpart.   The RPCOutInterceptor
> 159	                // will always generate WSI-BP compliant messages so it's unknown
if
> 160	                // the non-WSI-BP toolkits will be able to understand the CXF
> 161	                // generated messages if they are expecting it to be qualified.
> 162	                Iterator<MessagePartInfo> partItr = msg.getMessageParts().iterator();
> 163	                while (!qn.getLocalPart().equals(part.getConcreteName().getLocalPart())
> 164	                    && partItr.hasNext()) {
> 165	                    part = partItr.next();
> 166	                }
> 167	                
> 168	                if (!qn.equals(part.getConcreteName())) {
> 169	                    throw new Fault(
> 170	                                    new org.apache.cxf.common.i18n.Message(
> 171	                                                                "UNKNOWN_RPC_LIT_PART",
> 172	                                                                 LOG,
> 173	                                                                 qn));
> {code}
> However, line 168 is rejecting the namespace qualified parameter name.
> This patch changes the above if-statement to use only the local name comparison.
>    



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message