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.
