ws-wss4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From George Cowe <gc...@origoservices.com>
Subject RE: Unrecognized Callback
Date Wed, 24 Jan 2007 08:26:11 GMT
Thanks Ruchith,

For some reason my classpath must have been messed up, as a reboot has fixed the problem!
The last thing I tried!.

Thanks
George   

-----Original Message-----
From: Ruchith Fernando [mailto:ruchith.fernando@gmail.com] 
Sent: 23 January 2007 17:13
To: George Cowe
Cc: wss4j-dev@ws.apache.org
Subject: Re: Unrecognized Callback

Hi George,

Can this issue be due to a case where somehow, the classloader of the callback instance passed
into the callback handler is different from the classloader that loaded the callback handler?

Thanks,
Ruchith

On 1/19/07, George Cowe <gcowe@origoservices.com> wrote:
> Hi
>
> I am using WSS4J 1.5.1 with Axis 1.3 and having a problem signing a response from a web
service.
> The axis client successfully signs a SOAP message and sends it to server side axis service
which successfully verifies it. The axis service then attempts to sign the response and gets
the following error.
>
> WSHandler: password callback failed; nested exception is:
>         javax.security.auth.callback.UnsupportedCallbackException: Unrecognized Callback;
nested exception is:
>         org.apache.ws.security.WSSecurityException: WSHandler: password callback failed;
nested exception is:
>         javax.security.auth.callback.UnsupportedCallbackException: 
> Unrecognized Callback
>
> I'm using the same keystore and same private key to sign message on both client and server
side.
> Callback program is very simple and used on both client and server side. Works ok on
client side, but throws the Unrecognized Callback exception on server side.
>
> public void handle(Callback[] callbacks)
>     throws IOException, UnsupportedCallbackException {
>     for (int i = 0; i < callbacks.length; i++) {
>       if (callbacks[i] instanceof WSPasswordCallback) {
>         WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
>           pc.setPassword("george");
>       } else {
>         throw new UnsupportedCallbackException(
>           callbacks[i], "Unrecognized Callback");
>       }
>     }
>
> The same crypto properties file is used on client and server :-
>
> org.apache.ws.security.crypto.provider=org.apache.ws.security.componen
> ts.crypto.Merlin
> org.apache.ws.security.crypto.merlin.keystore.type=pkcs12
> org.apache.ws.security.crypto.merlin.keystore.password=george
> org.apache.ws.security.crypto.merlin.keystore.alias=55ce69717372baf27f
> 2862857a9dd2db_50e417e0-e461-474b-96e2-077b80325612
> org.apache.ws.security.crypto.merlin.alias.password=george
> org.apache.ws.security.crypto.merlin.file=george-origo.pfx
>
> The server wsdd looks like this :-
>
> <deployment name="CEBondSingleContractSecureHandlerService" xmlns="http://xml.apache.org/axis/wsdd/"
>             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
>             xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
>         <handler name="DoSecurityReceiver" type="java:org.apache.ws.axis.security.WSDoAllReceiver"
>
>                 <parameter name="action" value="Signature"/>
>                 <parameter name="signaturePropFile" value="crypto.properties"/>
>                 <parameter name="signatureKeyIdentifier" value="DirectReference"/>
>                 <parameter name="user" value="55ce69717372baf27f2862857a9dd2db_50e417e0-e461-474b-96e2-077b80325612"/>
>                 <parameter name="passwordCallbackClass" value="com.origoservices.keystore.util.PasswordProvider"
/>
>                 <parameter name="mustUnderstand" value="0" />
>         </handler>
>         <handler name="DoSecuritySender" type="java:org.apache.ws.axis.security.WSDoAllSender"
>
>                 <parameter name="action" value="Signature"/>
>                 <parameter name="signaturePropFile" value="crypto.properties"/>
>                 <parameter name="signatureKeyIdentifier" value="DirectReference"/>
>                 <parameter name="user" value="55ce69717372baf27f2862857a9dd2db_50e417e0-e461-474b-96e2-077b80325612"/>
>                 <parameter name="passwordCallbackClass" value="com.origoservices.keystore.util.PasswordProvider"
/>
>                 <parameter name="mustUnderstand" value="0" />
>         </handler>
>         <service name="CEBondSingleContractSecureHandlerService" style="message">
>         <requestFlow>
>            <handler type="DoSecurityReceiver"/>
>         </requestFlow>
>         <responseFlow>
>            <handler type="DoSecuritySender"/>
>         </responseFlow>
>         <parameter name="allowedMethods" value="*"/>
>         <parameter name="className" 
> value="com.origoservices.secure.ws.MsgProcessor"/>
> </service>
> </deployment>
>
> The axis client is using jdk 1.5 for the java runtime, the server side is Tomcat 5.0.28
which too is using the same jdk for its java runtime.
>
> Can anyone explain why an exception occurs in the passwordCallbackClass on server side?
>
> Any help much appreciated.
>
> Thanks
> George
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: wss4j-dev-help@ws.apache.org
>
>


--
www.ruchith.org
www.wso2.org

---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Mime
View raw message