J'ai un client de service Web créé par Axis2. Ce service utilise à la fois SSL et WS-Security, donc j'utilise rampart
. Je pense que mon client envoie la requête correcte, mais je suis exception:Comment voir ce que Axis2 envoie et reçoit?
org.apache.axis2.AxisFault: Must Understand check failed for header http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd : Security
at org.apache.axis2.engine.AxisEngine.checkMustUnderstand(AxisEngine.java:97)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:364)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at pl.firstdata.www.wdx.business.card.CardServiceStub.getBalance(CardServiceStub.java:1570)
at pl.firstdata.www.wdx.business.card.wdx_client.main(wdx_client.java:164)
Est-il possible de voir la requête « nue » et la réponse avec les en-têtes HTTP?
Alors que ce service utilise SSL, je pense que je ne peux pas utiliser le moniteur HTTP, et cela devrait être fait par axis2 après "application" de WS-Security mais avant SSL. Je peux activer cette journalisation sur mon émulateur (sans SSL) et il semble comme ça:
POST /webservices/emu/get_info.hdb HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Host: 127.0.0.1:8765
Content-Length: 4585
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"><xenc:EncryptedKey Id="EncKeyId-0D71FF61F3796881F812803190645315"><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<wsse:SecurityTokenReference><wsse:KeyIdentifier ...
...
Je l'utilise déjà, mais pas pour les services protégés par SSL. Le fournisseur de services dit qu'il ne peut pas désactiver SSL même pour les tests, j'ai donc besoin d'autres outils. Peut-être que axis2 a une option pour voir une requête "nue" et une réponse "nue"? –
Je crois que le violoneux peut agir comme un homme dans le proxy du milieu, même pour le débogage ssl. (fiddler est un proxy utilisé pour le débogage des requêtes http) – Toad
Merci. Comme dans ma réponse, j'ai utilisé stunel. Il n'a pas besoin de .NET comme fiddler2, et semble facile pour quelqu'un qui utilise tcpmon. –