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

同事,

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

积极的案例正在发挥作用。尝试测试带有安全错误(错误的证书/签名)的负面案例。

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

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

问题:

  • 也许 CXF 中有一些特定的处理 401 HTTP 代码?

  • 也许 SOAP 一般有一些特定的要求?

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

PS:尝试使用 WireShark 和 RawCap 捕获流量并尝试对其进行解码但没有成功。


慕标5832272
浏览 293回答 2
2回答

摇曳的蔷薇

请注意,当返回 SOAP 错误时,SOAP 1.1 和 SOAP 1.2 之间在允许的 HTTP 状态代码方面存在一些主要差异。在 SOAP 1.1 中,状态代码必须始终为 500“内部服务器错误”。在 SOAP 1.2 中,它根据 SOAP 错误的类型而变化

守着一只汪

我认为这个问题的答案会帮助你 提问该问题还包括对您客户的关于故障响应代码的肥皂规范的参考。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java