我有一个联邦政府(即极具安全意识)的 SOAP 服务,我必须连接到该服务才能完成项目。我遇到的问题是我遇到了可怕的
SEVERE: SOAP header missing
org.apache.axis2.AxisFault: SOAP header missing
at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:180)
可抛出的堆栈跟踪
我正在使用 wsdl2code 生成客户端 stub 并调用
GetResponseTypeDef resp = stub.getRequest(requestypdef, headerTypeDef);
headerTypeDef 似乎已正确填充了服务请求的 header 信息。
我想捕获正在发送的原始明文 SOAP xml 请求,但端点使用 https,并且我对该服务的可见性为零。所以wireshark确实不是一个选择。
我在 Linux 上使用以下命令: 轴2 1.5.4 壁垒 1.5.1 wss4j 1.5.10
我非常确定我正在发送 SOAP header ,但我需要证明这一点。该服务几乎使用了 WS-* 的每个子项目,包括安全性、策略、加密和数字签名,因此只有大约 100 个地方可能导致该服务失败。
如有任何帮助,我们将不胜感激。
最佳答案
设置代理服务,如 Charles并将其重定向到您的 HTTPS 端点。这样您就可以在调用被加密之前捕获该调用并打印出 XML 有效负载。附带说明一下,您可能需要提高接受率。
关于java - 我可以在 java axis2 客户端上捕获 https 的明文请求 SOAP 信封吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9283031/