Modestas Vainius created CXF-5609: ------------------------------------- Summary: Won't pass verification of explicit WSS Policy AsymmetricBinding -> Layout -> Policy -> Lax Key: CXF-5609 URL: https://issues.apache.org/jira/browse/CXF-5609 Project: CXF Issue Type: Bug Components: WS-* Components Affects Versions: 2.7.10, 2.6.13 Reporter: Modestas Vainius
Hello, I can't seem to get CXF WS-* validator to accept a message for service which has <sp:Layout> <wsp:Policy> <sp:Lax /> policy explicitly defined in the WSDL. Maybe I'm missing something, but all I get is: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>These policy alternatives can not be satisfied: {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}Layout</faultstring> </soap:Fault> </soap:Body> </soap:Envelope> I did some debugging on the issue and it appears that both org.apache.cxf.ws.security.policy.builders.LayoutBuilder and org.apache.cxf.ws.security.policy.model.AsymmetricBinding add org.apache.cxf.ws.security.policy.model.Layout assertions to the expected policy. However org.apache.cxf.ws.security.wss4j.policyvalidators.AbstractBindingPolicyValidator.checkProperties(SymmetricAsymmetricBindingBase, AssertionInfo, AssertionInfoMap, List<WSSecurityEngineResult>, List<WSSecurityEngineResult>, Message) successfully asserts only one of Layout instances while another one remains untouched and causes the failure to occur. If I comment out sp:Layout from WSDL, validation passes since LayoutBuilder never adds its Layout instance. I guess that removing LayoutBuilder would fix the problem but I'm not sure if this is the right thing to do. Relevant excerpt from WSDL: <wsp:Policy wsu:Id="SignAndEncrypt" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" wsdl:required="true"> <wsp:ExactlyOne> <wsp:All> <sp:AsymmetricBinding> <wsp:Policy> <sp:InitiatorToken> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never"> <wsp:Policy> <sp:WssX509V3Token10 /> </wsp:Policy> </sp:X509Token> </wsp:Policy> </sp:InitiatorToken> <sp:RecipientToken> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never"> <wsp:Policy> <sp:WssX509V3Token10 /> </wsp:Policy> </sp:X509Token> </wsp:Policy> </sp:RecipientToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256Rsa15 /> <sp:TripleDesRsa15 /> <sp:Basic128Rsa15 /> </wsp:Policy> </sp:AlgorithmSuite> <sp:IncludeTimestamp /> <sp:EncryptSignature /> <sp:OnlySignEntireHeadersAndBody /> </wsp:Policy> </sp:AsymmetricBinding> <sp:Wss10> <wsp:Policy> <sp:MustSupportRefIssuerSerial /> <sp:MustSupportRefEmbeddedToken /> </wsp:Policy> </sp:Wss10> <sp:Layout> <wsp:Policy> <sp:Lax /> </wsp:Policy> </sp:Layout> <sp:SignedParts> <sp:Body /> <sp:Header Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" /> <sp:Header Namespace="http://www.w3.org/2005/08/addressing" /> </sp:SignedParts> <sp:EncryptedParts> <sp:Body /> </sp:EncryptedParts> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> -- This message was sent by Atlassian JIRA (v6.2#6252)