Hi Werner,
How I can include the WsDoAllSender into a handler chain, in order to process the request?
I don't find the solution, can you help me in this?
Thanks for help.
Hermann
-----Messaggio originale-----
Da: Dittmann, Werner [mailto:[EMAIL PROTECTED]]
Inviato: mar 27/06/2006 10.34
A: [EMAIL PROTECTED]; [email protected]
Oggetto: AW: [WSS4J 1.5] WSDoAllReceiver: Request does not contain required Security header
I'm not quite sure - but to me it seems that you don't have the
WSDoAllSender
in your Axis handler chain. In fact you create a SimpleTargtedChain for
HTTPSender,
but I don't see any code that includes the WsDoAllSender into a handler
chain.
Setting up handler chains is usually an Axis topic. Did you ever build
the whole stuff
without dynamic handler setup first and using deployment files? Using
dynamic handler
chains together with security is a somewhat complex topic.
Regards,
Werner
________________________________
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Gesendet: Dienstag, 27. Juni 2006 10:21
An: [email protected]
Betreff: [WSS4J 1.5] WSDoAllReceiver: Request does not contain
required Security header
Hi all,
I've tried to send sign message to my server
With your help I've resolved a lot of problem but now I don't
understand why It doesn't work
My server deploy.wsdd of the server is this:
<!-- Use this file to deploy some handlers/chains and services
-->
<!-- Two ways to do this:
-->
<!-- java org.apache.axis.client.AdminClient deploy.wsdd
-->
<!-- after the axis server is running
-->
<!-- or
-->
<!-- java org.apache.axis.utils.Admin client|server
deploy.wsdd -->
<!-- from the same directory that the Axis engine runs
-->
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from PerformWSService WSDL service -->
<service name="PerformWService" provider="java:RPC"
style="rpc" use="encoded">
<requestFlow>
<handler
type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="action" value="Signature"/>
<parameter name="signaturePropFile"
value="cryptoReceiver.properties"/>
</handler>
</requestFlow>
<parameter name="wsdlTargetNamespace"
value="urn:PerformWService"/>
<parameter name="wsdlServiceElement"
value="PerformWSService"/>
<parameter name="wsdlServicePort"
value="PerformWService"/>
<parameter name="className"
value="PerformWS.PerformWServiceSoapBindingSkeleton"/>
<parameter name="wsdlPortType" value="PerformWS"/>
<parameter name="typeMappingVersion" value="1.2"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="Session"/>
</service>
</deployment>
my cryptoReceiver.properties is:
org.apache.ws.security.crypto.merlin.file=cacerts.jks
org.apache.ws.security.crypto.merlin.keystore.type=JKS
org.apache.ws.security.crypto.merlin.keystore.password=1234567890
Now the client have tha class that invoke the method:
ritorno="Nel try ";
PerformWSSecServiceLocator l=new
PerformWSSecServiceLocator(new MyEngineConfiguration());
ritorno=ritorno+"creato il locator ";
PerformWSSecuritySoapBindingStub stub
=(PerformWSSecuritySoapBindingStub) l.getPerformWSSecurity();
ritorno=ritorno+"creato lo stub ";
ritorno=stub.outputStr(host,usr,pass,com);
MyEngineConfiguration is this:
public class MyEngineConfiguration extends SimpleProvider {
public MyEngineConfiguration() {
super();
this.deployTransport("http", new SimpleTargetedChain(new
org.apache.axis.transport.http.HTTPSender()));
//parameters
Hashtable<String, Object> opts = new Hashtable<String,
Object>();
opts.put(AxisEngine.PROP_DISABLE_PRETTY_XML,
Boolean.TRUE);
this.setGlobalOptions(opts);
//requestFlow
org.apache.ws.axis.security.WSDoAllSender w = new
WSDoAllSender();
w.setOption(WSHandlerConstants.ACTION,
WSHandlerConstants.SIGNATURE);
w.setOption(WSHandlerConstants.USER,
"167deb1fb811921fce0fe7890db0b9da93225867");
w.setOption(WSHandlerConstants.PW_CALLBACK_CLASS,"PWCallback");
w.setOption(WSHandlerConstants.SIG_PROP_FILE,
"cryptoSender.properties");
w.setOption(WSHandlerConstants.SIG_KEY_ID,
"DirectReference");
w.setOption(WSHandlerConstants.MUST_UNDERSTAND, "false");
this.setGlobalResponse(w);
}
@Override
public void configureEngine(AxisEngine engine) throws
ConfigurationException {
engine.refreshGlobalOptions();
}
}
but when Run the main it return always this error:
WSDoAllReceiver: Request does not contain required Security
header
I don't understan why!!!
Please help me
Thanks all
Hermann
Title: R: [WSS4J 1.5] WSDoAllReceiver: Request does not contain required Security header
- AW: [WSS4J 1.5] WSDoAllReceiver: Request does not contain... Dittmann, Werner
- R: [WSS4J 1.5] WSDoAllReceiver: Request does not con... hescot
