Are you sure that the "com.test.cxf6.client.ClientPasswordCallback" class
is available on the classpath? You could put a breakpoint in
AbstractBindingBuilder.getCallbackHandler() to see what is going on there.

Colm.

On Thu, Jan 24, 2013 at 6:28 AM, cb9 <[email protected]> wrote:

> Hi,
>
> I am trying UsernameToken through SSL on Tomcat 7 , CXF 2.7.0.
>
> I get following error.
>
> WARNING: Interceptor for
> {
> http://cxf6.test.com/}HelloWorldImplService#{http://cxf6.test.com/}sayHello
> has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: No callback handler and no password
> available
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.handleBinding(TransportBindingHandler.java:158)
>         at
>
> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.java:159)
>         at
>
> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.java:89)
>         at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>         at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>         at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>         at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>         at $Proxy31.sayHello(Unknown Source)
>         at com.test.cx6.client.Client.main(Client.java:53)
> Caused by: org.apache.cxf.ws.policy.PolicyException: No callback handler
> and
> no password available
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.policyNotAsserted(AbstractBindingBuilder.java:309)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.getPassword(AbstractBindingBuilder.java:1002)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.addUsernameToken(AbstractBindingBuilder.java:815)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.handleUsernameTokenSupportingToken(AbstractBindingBuilder.java:612)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.handleSupportingTokens(AbstractBindingBuilder.java:489)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.handleSupportingTokens(AbstractBindingBuilder.java:476)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.handleNonEndorsingSupportingTokens(TransportBindingHandler.java:207)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.handleBinding(TransportBindingHandler.java:150)
>         ... 11 more
>
> Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: No
> callback
> handler and no password available
>         at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
>         at $Proxy31.sayHello(Unknown Source)
>         at com.test.cx6.client.Client.main(Client.java:53)
> Caused by: org.apache.cxf.ws.policy.PolicyException: No callback handler
> and
> no password available
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.policyNotAsserted(AbstractBindingBuilder.java:309)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.getPassword(AbstractBindingBuilder.java:1002)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.addUsernameToken(AbstractBindingBuilder.java:815)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.handleUsernameTokenSupportingToken(AbstractBindingBuilder.java:612)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.handleSupportingTokens(AbstractBindingBuilder.java:489)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.handleSupportingTokens(AbstractBindingBuilder.java:476)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.handleNonEndorsingSupportingTokens(TransportBindingHandler.java:207)
>         at
>
> org.apache.cxf.ws.security.wss4j.policyhandlers.TransportBindingHandler.handleBinding(TransportBindingHandler.java:150)
>         at
>
> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.java:159)
>         at
>
> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.java:89)
>         at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>         at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:464)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:367)
>         at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:320)
>         at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:89)
>         at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>         ... 2 more
>
> my client configuration is
>
> <beans xmlns="http://www.springframework.org/schema/beans";
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xmlns:jaxws="http://cxf.apache.org/jaxws";
>         xmlns:sec="http://cxf.apache.org/configuration/security";
>         xmlns:http="http://cxf.apache.org/transports/http/configuration";
>         xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
> http://cxf.apache.org/transports/http/configuration
> http://cxf.apache.org/schemas/configuration/http-conf.xsd
> http://cxf.apache.org/configuration/security
> http://cxf.apache.org/schemas/configuration/security.xsd";>
>
>         <bean id="logInBound"
> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
>         <bean id="logOutBound"
> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>
> <http:conduit name="{http://cxf6.test.com/}HelloWorldImplPort.http-conduit
> ">
>     <http:tlsClientParameters>
>       <sec:keyManagers keyPassword="ckpass">
>           <sec:keyStore file="target/classes/keystore/clientKeystore.jks"
> password="cspass" type="JKS"/>
>       </sec:keyManagers>
>       <sec:trustManagers>
>           <sec:keyStore file="target/classes/keystore/clientKeystore.jks"
> password="cspass" type="JKS"/>
>       </sec:trustManagers>
>       <sec:cipherSuitesFilter>
>
>         <sec:include>.*_EXPORT_.*</sec:include>
>         <sec:include>.*_EXPORT1024_.*</sec:include>
>         <sec:include>.*_WITH_DES_.*</sec:include>
>         <sec:include>.*_WITH_AES_.*</sec:include>
>         <sec:include>.*_WITH_NULL_.*</sec:include>
>         <sec:exclude>.*_DH_anon_.*</sec:exclude>
>       </sec:cipherSuitesFilter>
>     </http:tlsClientParameters>
>    </http:conduit>
>
>         <jaxws:client name="{http://cxf6.test.com/}HelloWorldImplPort";
> createdFromAPI="true">
>                  <jaxws:properties>
>                         <entry key="ws-security.username" value="testuser"
> />
>                         <entry key="ws-security.callback-handler"
> value="com.test.cxf6.client.ClientPasswordCallback" />
>                 </jaxws:properties>
>                 <jaxws:inInterceptors><ref bean="logInBound"
> /></jaxws:inInterceptors>
>                 <jaxws:outInterceptors> <ref
> bean="logOutBound"/></jaxws:outInterceptors>
>
>         </jaxws:client>
> </beans>
>
> Above error goes away if I remove callback-handler entry and replace it
> with
> password like the following one.
>
> <jaxws:client name="{http://cxf6.test.com/}HelloWorldImplPort";
> createdFromAPI="true">
>                  <jaxws:properties>
>                         <entry key="ws-security.username" value="testuser"
> />
>                         <entry key="ws-security.password"
> value="password"></entry>
>                 </jaxws:properties>
>                 <jaxws:inInterceptors><ref bean="logInBound"
> /></jaxws:inInterceptors>
>                 <jaxws:outInterceptors> <ref
> bean="logOutBound"/></jaxws:outInterceptors>
>
> </jaxws:client>
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/org-apache-cxf-interceptor-Fault-No-callback-handler-and-no-password-available-tp5722113.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to