[
https://issues.apache.org/jira/browse/CXF-8327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Colm O hEigeartaigh reassigned CXF-8327:
----------------------------------------
Assignee: Colm O hEigeartaigh
> UsernameTokenInterceptor doesn't set soap:actor
> -----------------------------------------------
>
> Key: CXF-8327
> URL: https://issues.apache.org/jira/browse/CXF-8327
> Project: CXF
> Issue Type: Bug
> Components: WS-* Components
> Affects Versions: 3.3.7
> Reporter: Ibrahim M. Ghazal
> Assignee: Colm O hEigeartaigh
> Priority: Major
>
> I have a WSDL with the following wsp:policy:
> {code:xml}
> <wsp:UsingPolicy wsdl:Required="true" />
> <wsp:Policy wsu:Id="MyPolicy">
> <sp:SupportingTokens>
> <wsp:Policy>
> <sp:UsernameToken
>
> sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
> <wsp:Policy>
> <sp:WssUsernameToken10 />
> </wsp:Policy>
> </sp:UsernameToken>
> </wsp:Policy>
> </sp:SupportingTokens>
> </wsp:Policy>
> {code}
> I create the binding using the following:
> {code:java}
> JAXWSSpringClientProxyFactoryBean factory = new
> JAXWSSpringClientProxyFactoryBean();
> // set service class, wsdl location, etc. on factory
> factory.getProperties().put(SecurityConstants.ACTOR, "myactor");
> factory.getProperties().put(SecurityConstants.USERNAME, "myusername");
> factory.getProperties().put(SecurityConstants.PASSWORD, "mypassword");
> {code}
> The above code results in the following SOAP header, which has the correct
> username and password but is missing the actor:
> {code:xml}
> <soap:Header>
> <wsse:Security
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
> soap:mustUnderstand="1">
> <wsse:UsernameToken
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
> wsu:Id="UsernameToken-019185dc-94b7-4e62-b0fb-93577736a912">
> <wsse:Username>myusername</wsse:Username>
> <wsse:Password
> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">mypassword</wsse:Password>
> </wsse:UsernameToken>
> </wsse:Security>
> </soap:Header>
> {code}
> The expected output header should also include {{soap:actor="myactor"}}
> attribute in the {{wsse:Security}} element.
> I believe this can be fixed by setting the actor in the
> [AbstractTokenInterceptor.findSecurityHeader|https://github.com/apache/cxf/blob/113e426f6b717925736433fe04a1b72f801dd574/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractTokenInterceptor.java#L151]
> method.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)