Как посмотреть, что Axis2 отправляет и получает? - PullRequest
0 голосов
/ 29 июля 2010

У меня есть созданный Axis2 клиент веб-службы.Эта служба использует как SSL, так и WS-Security, поэтому я использую rampart.Я думаю, что мой клиент отправляет правильный запрос, но я получил исключение:

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)

Есть ли способ увидеть «голый» запрос и ответ с заголовками HTTP?

Хотя этот сервис использует SSLЯ думаю, что я не могу использовать HTTP-монитор, и это должно быть сделано axis2 после «применения» WS-Security, но до SSL.Я могу включить такую ​​регистрацию на моем эмуляторе (без SSL), и это выглядит так:

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 ...
...

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

Используйте для этого инструмент tcpmon.

Обратите внимание, что в большинстве установок на основе Linux это, скорее всего, будет сделано для вас. По завершении процесса сборки вы можете найти исполняемый файл в $ {AXIS2C_HOME} / bin / tools в Linux или в% AXIS2C_HOME% \ bin \ tools в MS Windows.

0 голосов
/ 01 сентября 2010

Я использую Stunel с tcpmon .Шаги:

  1. мое axis2 приложение выполняет обычный HTTP-запрос;этот запрос отправляется на tcpmon
  2. tcpmon регистрирует его и отправляет запрос на stunel
  3. stunel добавляет SSL и отправляет зашифрованный запрос на целевой сервер
  4. stunel получает зашифрованный ответ, расшифровывает его и отправляет обратно tcpmon
  5. tcpmon регистрирует расшифрованный ответ и отправляет его в мое axis2 приложение
...