Stefan Pröls created CXF-6327: --------------------------------- Summary: Invalid Policy exception for EndorsingSupportingTokens with more than one token assertions Key: CXF-6327 URL: https://issues.apache.org/jira/browse/CXF-6327 Project: CXF Issue Type: Bug Components: WS-* Components Affects Versions: 3.0.4 Reporter: Stefan Pröls
Parsing WS-Security Policies containing EndorsingSupportingTokens with more than one token assertion in its nested Policy throws a "java.lang.IllegalArgumentException: Invalid Policy". Here is a WSDL test-case: https://rheaavs.element44.net/AvsMpsService_R1_Variante2.wsdl The sp:EndorsingSupportingTokens/wsp:Policy has 2 token assertions as children: a sp:X509Token and a sp:IssuedToken. Apparently CXF doesn't like that. If I either remove one of these token assertions or put a wsp:ExactlyOne around them, the exception will not be thrown and the SOAP-Request will be sent but the remote server will not accept the message and return an InvalidSecurity SOAP-Fault. Putting an wsp:ExactlyOne/wsp:All around the 2 tokens will cause the exception to be thrown again. According to the specification I cannot see anything wrong with this Policy. See http://docs.oasis-open.org/ws-sx/ws-securitypolicy/v1.2/errata01/os/ws-securitypolicy-1.2-errata01-os-complete.html Section 8.3: <sp:EndorsingSupportingTokens xmlns:sp="..." ... > <wsp:Policy xmlns:wsp="..."> [Token Assertion]+ <sp:AlgorithmSuite ... > ... </sp:AlgorithmSuite> ? ( <sp:SignedParts ... > ... </sp:SignedParts> | <sp:SignedElements ... > ... </sp:SignedElements> | <sp:EncryptedParts ... > ... </sp:EncryptedParts> | <sp:EncryptedElements ... > ... </sp:EncryptedElements> | <sp:ContentEncryptedElements ... > ... </sp:ContentEncryptedElements> ) * ... </wsp:Policy> ... </sp:EndorsingSupportingTokens> ... /sp:EndorsingSupportingTokens/wsp:Policy/[Token Assertion] The policy MUST identify one or more token assertions. This bug currently makes it impossible to access WebServices using such a SecurityPolicy for me as I couldn't find a client-side workaround. -- This message was sent by Atlassian JIRA (v6.3.4#6332)