在出现401 HTTP响应代码的情况下,CXF SOAP无法在客户端解析请求

时间:2018-09-07 09:13:10

标签: java soap cxf

同事

我有基于CXF实现的SOAP Web服务,并启用了SSL和WSS配置(使用WSP配置)。 我已经使用CXF编写了用于测试此服务的测试工具。

积极的案例在起作用。尝试测试带有安全性错误(错误的证书/签名)的否定案例。

我要求客户在出现安全性错误的情况下返回fault:401 HTTP响应代码401

问题: 当我从接收方的Web服务返回HTTP代码401(在测试工具中)时,由于传入的内部InputStream为空(没有内容),我收到封送处理错误。当我返回任何其他HTTP代码(200/403/419/500/503)时-接收方没有任何问题!而且我可以看到SOAP错误以及在Web服务端生成的消息。

问题:

  • 也许CXF中有一些特定的处理401 HTTP代码?
  • 一般来说SOAP中可能有一些特定要求吗?

如果在SOAP中返回401 HTTP代码,这是一种不好的做法,请您提供文档/源代码以证明这种行为并帮助我更改客户要求。我试图抛出该代码,但找不到该案例处理的地方

P.S:尝试使用WireShark和RawCap捕获流量,并尝试对其进行解码,但未成功。

2 个答案:

答案 0 :(得分:0)

我认为这个问题的答案将对您有所帮助 question

该问题还包括对您的客户有关故障响应代码的soap规范的参考。

答案 1 :(得分:0)

请小心,因为返回SOAP错误时,在允许的HTTP状态代码中SOAP 1.1和SOAP 1.2之间存在一些主要差异。

  • 在SOAP 1.1中,状态代码必须始终为500“内部服务器错误”。
  • 在SOAP 1.2中,它因SOAP故障的类型而异