You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Aaron Stromas <pa...@gmail.com> on 2012/08/03 18:07:36 UTC
Authentication woes
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"
xmlns:wsp="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">
<wsp:Policy>
<sp:UsernameToken sp:IncludeToken="
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.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
AllEmployees<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
}<http://mlns.walmartstores.com/HRM/WorkforceAdmin/wsdl/GetGlobalAssociateInfoIntf/1.0/%7DgetPersonalProfile>
GetAllEmployeesInfoImpl#{http://x<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>
.com/HRM/WorkforceAdmin/wsdl/GetAllEmployees<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,
--
Aaron Stromas
Re: Authentication woes
Posted by Glen Mazza <gm...@talend.com>.
Sorry, I don't know the CXF dynamic client so am unsure of its
configuration with respect to WS-SecurityPolicy (I try to stick with the
standard JAX-WS stuff.) But it looks like your client is not detecting
the username configuration you're providing for it.
As for the header, any header can be added via JAX-WS Headers or CXF
interceptors (http://www.jroller.com/gmazza/entry/blog_article_index,
blog entries #52 and #53) but it looks like you have an implicit header
there, so article #56 might be able to provide a very simple method for
you to add the headers in.
You might want to try accessing the service via soapUI to become certain
of the required SOAP request format. Wireshark (article #33) can be
used to check the SOAP requests that CXF is sending out on the wire.
HTH,
Glen
On 08/03/2012 01:01 PM, Aaron Stromas wrote:
> In the WSDL I received I found the following
>
> <wsdl:input>
> <soap:body use="literal" />
> <soap:header message="tns:StandardRequestMessage"
> part="subscriptionEnforcement" use="literal" />
> <wsp:PolicyReference URI="#UsernameToken" />
> </wsdl:input>
> <wsdl:output>
>
> The code generated by wsdl2java has also generated an Enforcement element
> which consists of two identity objects. It appears that this object needs
> to be inserted into the headers (how is it done?). Is it possible that I
> am getting the "user not found" error due to not having the correct SOAP
> header?
>
> Regards,
>
> -a
>
> On 3 August 2012 12:32, Aaron Stromas <pa...@gmail.com> wrote:
>
>> 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 <gm...@talend.com> 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
>>
>>
>
--
Glen Mazza
Talend Community Coders
coders.talend.com
blog: www.jroller.com/gmazza
Re: Authentication woes
Posted by Aaron Stromas <pa...@gmail.com>.
In the WSDL I received I found the following
<wsdl:input>
<soap:body use="literal" />
<soap:header message="tns:StandardRequestMessage"
part="subscriptionEnforcement" use="literal" />
<wsp:PolicyReference URI="#UsernameToken" />
</wsdl:input>
<wsdl:output>
The code generated by wsdl2java has also generated an Enforcement element
which consists of two identity objects. It appears that this object needs
to be inserted into the headers (how is it done?). Is it possible that I
am getting the "user not found" error due to not having the correct SOAP
header?
Regards,
-a
On 3 August 2012 12:32, Aaron Stromas <pa...@gmail.com> wrote:
> 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 <gm...@talend.com> 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
>
>
--
Aaron Stromas
Mobile: +1 703 203 9169
Re: Authentication woes
Posted by Aaron Stromas <pa...@gmail.com>.
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 <gm...@talend.com> 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
Re: Authentication woes
Posted by Glen Mazza <gm...@talend.com>.
This blog entry might help:
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"
> xmlns:wsp="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">
> <wsp:Policy>
> <sp:UsernameToken sp:IncludeToken="
> 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.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
> AllEmployees<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
> }<http://mlns.walmartstores.com/HRM/WorkforceAdmin/wsdl/GetGlobalAssociateInfoIntf/1.0/%7DgetPersonalProfile>
> GetAllEmployeesInfoImpl#{http://x<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>
> .com/HRM/WorkforceAdmin/wsdl/GetAllEmployees<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
Re: Authentication woes
Posted by Daniel Kulp <dk...@apache.org>.
Very strange.. It LOOKS like the the message properties aren't being
properly put into the message itself, but I'm really not sure how that's
possible. Is there a way you could create a simple testcase? I don't
think you even need a server for this as this is occuring prior to even
connecting. A simple client + wsdl w/ policy will likely be enough.
Dan
On Friday, August 03, 2012 12:07:36 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" xmlns:wsp="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">
> <wsp:Policy>
> <sp:UsernameToken sp:IncludeToken="
> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Alw
> aysToRecipient" />
> </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/GetAllEmployees
> InfoImpl/1.0/}Get<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/se
> rvice/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
> AllEmployees<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/servic
> e/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
> }<http://mlns.walmartstores.com/HRM/WorkforceAdmin/wsdl/GetGlobalAssociat
> eInfoIntf/1.0/%7DgetPersonalProfile>
> GetAllEmployeesInfoImpl#{http://x<http://www.xmlns.walmartstores.com/HRM/
> WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
> mlns.enterprise<http://www.xmlns.walmartstores.com/HRM/WorkforceAdmin/ser
> vice/GetGlobalAssociateInfoImpl/1.0/%7DGetGlobalAssoc>
> .com/HRM/WorkforceAdmin/wsdl/GetAllEmployees<http://www.xmlns.walmartstor
> es.com/HRM/WorkforceAdmin/service/GetGlobalAssociateInfoImpl/1.0/%7DGetGlo
> balAssoc>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.policyNotAsserte
> d(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(Us
> ernameTokenInterceptor.java:112) at
> org.apache.cxf.ws.security.wss4j.UsernameTokenInterceptor.handleMessage(Us
> ernameTokenInterceptor.java:76) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCha
> in.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.policyNotAsserte
> d(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(Us
> ernameTokenInterceptor.java:112) at
> org.apache.cxf.ws.security.wss4j.UsernameTokenInterceptor.handleMessage(Us
> ernameTokenInterceptor.java:76) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorCha
> in.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,
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com