Lukas created CXF-7605:
--------------------------
Summary: RequireDerivedKeys policy is not respected
Key: CXF-7605
URL: https://issues.apache.org/jira/browse/CXF-7605
Project: CXF
Issue Type: Bug
Components: Soap Binding, WS-* Components
Affects Versions: 3.1.15, 3.2.2
Environment: * cxf-rt-frontend-jaxws
* cxf-rt-frontend-jaxrs
* cxf-rt-transports-http
* cxf-rt-rs-client
* cxf-rt-rs-service-description
* cxf-rt-ws-security
* cxf-tools-common
* cxf-rt-ws-policy
Reporter: Lukas
Attachments: code.java, full_wsdl.wsdl, policy_fragment.xml
CXF 3.2.2-SNAPSHOT, as well as 3.1.15-SNAPSHOT do not derive keys for hmac
signature, while ws-policy states that derived keys are required
({{<ws:RequireDerivedKeys/>}} in {{effective Policy}}).
The Policy is embedded in the wsdl that is passed to the {{wsdl2java}} gradle
task.
Inspecting the SoapMessage passed to the {{WSStaxOutInterceptor}} the contents
of {{org.apache.cxf.ws.policy.EffectivePolicy}}.{{choosenAlternative[1]
}}(=="SupportEndorsingTokens") contain a nested Policy setting
{{RequireDerivedKeys}}.
This reflects the structure and contents of the attached policy (see
policy_fragment.xml).
CXF correctly embeds a SAML Token as requested by the policy and signs using a
symmetric key (got by WS-Secureconversation / WS-Trust previously) - both steps
are defined in the attached policy.
CXF should however, sign with a key *derived* from said symmetric key,
specified by {{<wsp:RequestDerivedKeys />}}, this step is ignored, thus
resulting an a request that does not adhere to the policy.
Code and wsdl worked with cxf 3.1.12.
Attached are:
* full_wsdl.wsdl - the wsdl parsed by cxfs' "wsdl2java" gradle task (stripped
of irrelevant endpoints and domain names)
* code.java - code snippet demonstrating the use-case
* policy_fragment.xml - the policy to save looking for it in the wsdl
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)