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)

Reply via email to