This weekend I was doing some testing and I realized that some of them
started failing for no reason.
After a while, I was able to trace this to the changes in the
ReadHeadersInterceptor 
and MustUndertstandInterceptor interceptors related to the fix:

https://issues.apache.org/jira/browse/CXF-4819.

However, I think the fix now is breaking SOAP spec since now if
mustUnderstand attribute is set 
to "true" in a custom header but no Soap interceptor is handling the same,
CXF is silently ignoring it
instead of raising a Soap fault.

As per SOAP spec (http://www.w3.org/TR/soap12-part0/#L1474):

"A env:mustUnderstand value of "true" means that the SOAP node must process
the header with the
semantics described in that header's specification, or else generate a SOAP
fault. "

Regarding my use case, the mustUndestand attribute is REQUIRED if the custom
header is present
and I was validating this. Now I have no way to know if the attribute was
present or not as 
it's removed. 

I understand that the issue was reported because this attribute is in a
different NS but that's how
SOAP spec defines it. As I see it, there are two cases:

1. A Custom Interceptor NOT present and mustUnderstand is true. CXF should
manage this and report
a fault as per the spec.

2. Custom interceptor present. If the mustUnderstand is REQUIRED, then the
interceptor should validate
this (assuming that it still has access to the attribute which is not the
case right now with the new fix). 
if OPTIONAL, nothing is done.

BRgds.

Jesus.



--
View this message in context: 
http://cxf.547215.n5.nabble.com/CXF-4819-breaking-validation-of-mustUnderstand-attribute-tp5723289.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to