SOAP - <wsu:Created> 的格式
SOAP - Format of <wsu:Created>
我需要使用 UserToken 配置文件身份验证访问 SOAP 网络服务。
通过使用 SOAP UI 手动生成请求,身份验证可以正常工作。
但是对于 Denodo,我收到一条身份验证错误消息。
经过调查,Denodo 生成的消息在 <wsu:Created>
标记上与我的不同。
我目前使用的格式:
<year 4 digits>-<months 2 digits>-<days 2 digits>T<hours 2 digits>:<minutes 2 digits>:<seconds 2 digits>Z
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-a8a99e54-c7e8-4bfd-ba6f-352f2aa8a4f0">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">pGeWVKgrFAjKquhfsZq+QGZgcsQs=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">SDW12f8d12VgGH6gl4qTEw==</wsse:Nonce>
<wsu:Created>2021-01-18T18:05:02Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
Denodo 使用格式的地方:
<year 4 digits>-<months 2 digits>-<days 2 digits>T<hours 2 digits>:<minutes 2 digits>:<seconds 2 digits>.<miliseconds 3 digits>Z
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-a8a99e54-c7e8-4bfd-ba6f-352f2aa8a4f0">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">pGeWVKgrFAjKquhfsZq+QGZgcsQs=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">SDW12f8d12VgGH6gl4qTEw==</wsse:Nonce>
<wsu:Created>2021-01-18T18:05:02.486Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
我查看了 oasis 文档,但没有找到描述 SOAP 安全 header 的 <wsu:Created>
标记的允许格式的文档。
有谁知道我在哪里可以找到该字段允许格式的说明?
提前致谢
如果您遵循 wsu
命名空间的 XSD 模式,您会看到它指向 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
虽然无法获得值的描述,但运气不佳。但是,如果您查找规范文档,您会发现 https://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
本文档描述了 wsu
命名空间,还提到:
This specification defines and illustrates time references in terms of the xsd:dateTime type defined in XML Schema. It is RECOMMENDED that all time references use this type.
所以这是标准 dateTime
类型 from the XML Schema。顺便说一句,小数秒是可选的,所以我不确定你为什么会因此而出错。你确定这不是一条红鲱鱼?
我需要使用 UserToken 配置文件身份验证访问 SOAP 网络服务。 通过使用 SOAP UI 手动生成请求,身份验证可以正常工作。 但是对于 Denodo,我收到一条身份验证错误消息。
经过调查,Denodo 生成的消息在 <wsu:Created>
标记上与我的不同。
我目前使用的格式:
<year 4 digits>-<months 2 digits>-<days 2 digits>T<hours 2 digits>:<minutes 2 digits>:<seconds 2 digits>Z
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-a8a99e54-c7e8-4bfd-ba6f-352f2aa8a4f0">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">pGeWVKgrFAjKquhfsZq+QGZgcsQs=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">SDW12f8d12VgGH6gl4qTEw==</wsse:Nonce>
<wsu:Created>2021-01-18T18:05:02Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
Denodo 使用格式的地方:
<year 4 digits>-<months 2 digits>-<days 2 digits>T<hours 2 digits>:<minutes 2 digits>:<seconds 2 digits>.<miliseconds 3 digits>Z
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-a8a99e54-c7e8-4bfd-ba6f-352f2aa8a4f0">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">pGeWVKgrFAjKquhfsZq+QGZgcsQs=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">SDW12f8d12VgGH6gl4qTEw==</wsse:Nonce>
<wsu:Created>2021-01-18T18:05:02.486Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
我查看了 oasis 文档,但没有找到描述 SOAP 安全 header 的 <wsu:Created>
标记的允许格式的文档。
有谁知道我在哪里可以找到该字段允许格式的说明?
提前致谢
如果您遵循 wsu
命名空间的 XSD 模式,您会看到它指向 http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
虽然无法获得值的描述,但运气不佳。但是,如果您查找规范文档,您会发现 https://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
本文档描述了 wsu
命名空间,还提到:
This specification defines and illustrates time references in terms of the xsd:dateTime type defined in XML Schema. It is RECOMMENDED that all time references use this type.
所以这是标准 dateTime
类型 from the XML Schema。顺便说一句,小数秒是可选的,所以我不确定你为什么会因此而出错。你确定这不是一条红鲱鱼?