soap - SOAP - 格式
问题描述
我需要使用 UserToken 配置文件身份验证访问 SOAP Web 服务。通过使用 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 文档,但没有找到描述<wsu:Created>
SOAP 安全标头标记的允许格式的文档。有谁知道我在哪里可以找到该字段允许格式的描述?
提前致谢
解决方案
如果您遵循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
命名空间,还提到:
本规范根据 XML Schema 中定义的 xsd:dateTime 类型定义和说明时间引用。建议所有时间参考都使用这种类型。
所以它是XML SchemadateTime
的标准类型。顺便说一下,小数秒是可选的,所以我不确定你为什么会因此而出错。你确定这不是红鲱鱼?
推荐阅读
- python - 在 Django 视图中多次返回并继续执行代码
- angular - 使用量角器进行 E2E 测试:“失败:关闭的用户提示对话框”
- .net - 'ApplicationDbContext' 不继承自 DbContext
- python - Python 程序将 self 计为参数,并且 a 导致 TypeError
- python - 如何在 django 模型中计算@property 函数的总和?
- flutter - 修改后的骰子程序在颤振中无法按预期工作
- selenium - 在 Jmeter 中使用 Selenium 在网页中查找元素
- react-native - onPress 在 React Native Flatlist 中不起作用
- css - 尽管设置了宽度和高度,但图像在加载后导致回流?
- c++ - 虚幻引擎中C++ dll的触发事件