I have read and re-read it. Based on it I decided I was facing WS-SecurityPolicy situation. Just to be sure, I did try the WSS4J interceptors with apparently identical results. Since this is dynamic client I don't need any configuration files, do I?
Regards, -a On 3 August 2012 12:09, Glen Mazza <[email protected]> wrote: > This blog entry might help: http://www.jroller.com/gmazza/** > entry/cxf_usernametoken_**profile<http://www.jroller.com/gmazza/entry/cxf_usernametoken_profile> > > Regards, > Glen > > > On 08/03/2012 12:07 PM, Aaron Stromas wrote: > >> Hello, >> >> I have received a WSDL that contains a policy element >> >> <wsp:Policy wsu:Id="UsernameToken" xmlns:wsu=" >> http://docs.oasis-open.org/**wss/2004/01/oasis-200401-wss-** >> wssecurity-utility-1.0.xsd<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd> >> " >> xmlns:wsp="http://schemas.**xmlsoap.org/ws/2004/09/policy<http://schemas.xmlsoap.org/ws/2004/09/policy> >> "**> >> <wsp:ExactlyOne> >> <wsp:All> >> <sp:SupportingTokens xmlns:sp=" >> http://docs.oasis-open.org/ws-**sx/ws-securitypolicy/200702<http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702> >> "> >> <wsp:Policy> >> <sp:UsernameToken sp:IncludeToken=" >> http://docs.oasis-open.org/ws-**sx/ws-securitypolicy/200702/** >> IncludeToken/AlwaysToRecipient<http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient> >> **" >> /> >> </wsp:Policy> >> </sp:SupportingTokens> >> </wsp:All> >> </wsp:ExactlyOne> >> </wsp:Policy> >> >> so I decided that this is a WS-SecurityPolicy use case my client should >> authenticate itself this way >> >> Map ctx = ((BindingProvider)port).**getRequestContext(); >> ctx.put("ws-security.username"**, "aname"); >> ctx.put("ws-security.callback-**handler", >> PasswordCallback.class.**getName()); >> >> Unfortunately, I'm getting the following stack trace >> >> WARNING: Interceptor for { >> http://www.xmlns.enterprise.**com/HRM/WorkforceAdmin/**service/** >> GetAllEmployeesInfoImpl/1.0/}**Get<http://www.xmlns.enterprise.com/HRM/WorkforceAdmin/service/GetAllEmployeesInfoImpl/1.0/%7DGet> >> <http://www.xmlns.**walmartstores.com/HRM/**WorkforceAdmin/service/** >> GetGlobalAssociateInfoImpl/1.**0/%7DGetGlobalAssoc<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc> >> > >> AllEmployees<http://www.xmlns.**walmartstores.com/HRM/** >> WorkforceAdmin/service/**GetGlobalAssociateInfoImpl/1.** >> 0/%7DGetGlobalAssoc<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc> >> > >> }<http://mlns.walmartstores.**com/HRM/WorkforceAdmin/wsdl/** >> GetGlobalAssociateInfoIntf/1.**0/%7DgetPersonalProfile<http://mlns.walmartstores.com/HRM/WorkforceAdmin/wsdl/GetGlobalAssociateInfoIntf/1.0/%7DgetPersonalProfile> >> > >> GetAllEmployeesInfoImpl#{http:**//x <http://x><http://www.xmlns.** >> walmartstores.com/HRM/**WorkforceAdmin/service/** >> GetGlobalAssociateInfoImpl/1.**0/%7DGetGlobalAssoc<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc> >> > >> mlns.enterprise<http://www.**xmlns.walmartstores.com/HRM/** >> WorkforceAdmin/service/**GetGlobalAssociateInfoImpl/1.** >> 0/%7DGetGlobalAssoc<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc> >> > >> .com/HRM/WorkforceAdmin/wsdl/**GetAllEmployees<http://www.** >> xmlns.walmartstores.com/HRM/**WorkforceAdmin/service/** >> GetGlobalAssociateInfoImpl/1.**0/%7DGetGlobalAssoc<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc> >> >InfoIntf/**1.0/}getPersonalProfile >> >> has thrown exception, unwinding now >> org.apache.cxf.ws.policy.**PolicyException: No username available >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> policyNotAsserted(**UsernameTokenInterceptor.java:**398) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> addUsernameToken(**UsernameTokenInterceptor.java:**341) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> addUsernameToken(**UsernameTokenInterceptor.java:**267) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> handleMessage(**UsernameTokenInterceptor.java:**112) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> handleMessage(**UsernameTokenInterceptor.java:**76) >> at >> org.apache.cxf.phase.**PhaseInterceptorChain.**doIntercept(** >> PhaseInterceptorChain.java:**263) >> at org.apache.cxf.endpoint.**ClientImpl.doInvoke(** >> ClientImpl.java:533) >> at org.apache.cxf.endpoint.**ClientImpl.invoke(ClientImpl.** >> java:463) >> at org.apache.cxf.endpoint.**ClientImpl.invoke(ClientImpl.** >> java:366) >> at org.apache.cxf.endpoint.**ClientImpl.invoke(ClientImpl.** >> java:319) >> at >> org.apache.cxf.frontend.**ClientProxy.invokeSync(**ClientProxy.java:88) >> at >> org.apache.cxf.jaxws.**JaxWsClientProxy.invoke(** >> JaxWsClientProxy.java:134) >> at $Proxy29.getPersonalProfile(**Unknown Source) >> at >> com.rsa.pso.common.ws.hcm.**client.HcmClient.main(**HcmClient.java:95) >> Exception in thread "main" javax.xml.ws.soap.**SOAPFaultException: No >> username available >> at >> org.apache.cxf.jaxws.**JaxWsClientProxy.invoke(** >> JaxWsClientProxy.java:156) >> at $Proxy29.getPersonalProfile(**Unknown Source) >> at >> com.rsa.pso.common.ws.hcm.**client.HcmClient.main(**HcmClient.java:95) >> Caused by: org.apache.cxf.ws.policy.**PolicyException: No username >> available >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> policyNotAsserted(**UsernameTokenInterceptor.java:**398) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> addUsernameToken(**UsernameTokenInterceptor.java:**341) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> addUsernameToken(**UsernameTokenInterceptor.java:**267) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> handleMessage(**UsernameTokenInterceptor.java:**112) >> at >> org.apache.cxf.ws.security.**wss4j.**UsernameTokenInterceptor.** >> handleMessage(**UsernameTokenInterceptor.java:**76) >> at >> org.apache.cxf.phase.**PhaseInterceptorChain.**doIntercept(** >> PhaseInterceptorChain.java:**263) >> at org.apache.cxf.endpoint.**ClientImpl.doInvoke(** >> ClientImpl.java:533) >> at org.apache.cxf.endpoint.**ClientImpl.invoke(ClientImpl.** >> java:463) >> at org.apache.cxf.endpoint.**ClientImpl.invoke(ClientImpl.** >> java:366) >> at org.apache.cxf.endpoint.**ClientImpl.invoke(ClientImpl.** >> java:319) >> at >> org.apache.cxf.frontend.**ClientProxy.invokeSync(**ClientProxy.java:88) >> at >> org.apache.cxf.jaxws.**JaxWsClientProxy.invoke(** >> JaxWsClientProxy.java:134) >> >> What am doing wrong, please? TIA, >> > > > -- > Glen Mazza > Talend Community Coders > coders.talend.com > blog: www.jroller.com/gmazza > > -- Aaron Stromas Mobile: +1 703 203 9169
