Its expecting your class to implement avax.security.auth.callback.CallbackHandler. There is this one in one of the test cases:

public void handle(Callback[] callbacks)
       throws IOException, UnsupportedCallbackException
   {
       for (int i = 0; i < callbacks.length; i++)
       {
           WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];

           String pass = (String) passwords.get(pc.getIdentifer());
           if (pass != null)
           {
               pc.setPassword(pass);
           }
       }
   }

- Dan

bkbonner wrote:
Dan, you're right about the phase.  I've removed that.  It's set in the
constructor.  It used to be needed.

My callback class is probably problematic:

package com.paraware.webservice.gawda.pricecheck;

import javax.security.auth.callback.Callback;
import javax.security.auth.callback.PasswordCallback;

import org.apache.ws.security.WSPasswordCallback;

public class BriansCallback
    extends WSPasswordCallback
{
    public BriansCallback()
    {
        //TODO  id is set to "test".  Need to identify what this is for
        super("test", WSPasswordCallback.USERNAME_TOKEN);
    }
}



Here's the stack trace:

{http://pricecheck.gawda.webservice.paraware.com}PriceAndAvailabilityService
DEBUG org.codehaus.xfire.transport.DefaultTransportManager : Registered
transport [EMAIL PROTECTED]
DEBUG org.codehaus.xfire.transport.http.HttpTransport : Creating new channel
for uri: /gawda/xfire/CustomerService
DEBUG org.codehaus.xfire.transport.DefaultEndpoint : Received message to
/gawda/xfire/CustomerService
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.util.dom.DOMInHandler in phase parse
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.security.wss4j.WSS4JInHandler in phase parse
DEBUG org.codehaus.xfire.security.wss4j.WSS4JInHandler :
WSS4JInSecurityHandler: enter invoke()
DEBUG org.codehaus.xfire.handler.DefaultFaultHandler : Fault occurred!
org.codehaus.xfire.fault.XFireFault: WSHandler: cannot create instance of
password callback: com.paraware.webservice.gawda.pricecheck.BriansCallback;
nested exception is: java.lang.ClassCastException:
com.paraware.webservice.gawda.pricecheck.BriansCallback
        at
org.codehaus.xfire.security.wss4j.WSS4JInHandler.invoke(WSS4JInHandler.java:256)
        at
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:98)
        at
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:61)
        at
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
        at
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:278)
        at
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:144)
        at
org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:63)
        at
org.codehaus.xfire.spring.remoting.XFireExporter.handleRequest(XFireExporter.java:44)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
        at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:717)
        at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
        at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
        at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.ws.security.WSSecurityException: WSHandler: cannot
create instance of password callback:
com.paraware.webservice.gawda.pricecheck.BriansCallback; nested exception
is: java.lang.ClassCastException:
com.paraware.webservice.gawda.pricecheck.BriansCallback
        at
org.apache.ws.security.handler.WSHandler.getPasswordCB(WSHandler.java:810)
        at
org.codehaus.xfire.security.wss4j.WSS4JInHandler.invoke(WSS4JInHandler.java:111)
        ... 28 more
Caused by: java.lang.ClassCastException:
com.paraware.webservice.gawda.pricecheck.BriansCallback
        at
org.apache.ws.security.handler.WSHandler.getPasswordCB(WSHandler.java:808)
        ... 29 more
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.soap.handler.FaultSoapSerializerHandler in phase
post-invoke
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.handler.CustomFaultHandler in phase user
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.transport.http.XFireServletController$FaultResponseCodeHandler
in phase transport
DEBUG org.codehaus.xfire.handler.HandlerPipeline : Invoking handler
org.codehaus.xfire.fault.FaultSender in phase send

--
View this message in context: 
http://www.nabble.com/WS-Security-and-UserTokens-t1543793.html#a4214147
Sent from the XFire - User forum at Nabble.com.



--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog

Reply via email to