MessagePredicate/@{any}
可以指定其他的属性,但它们“绝不可以”与其所有者元素有语义冲突;如果属性没有被识别,则“应该”忽略它。
以下示例描述了该声明的使用:在此示例中,断言应用的消息必须正好包含一个 WS-Security [WS-Security] <Security> 头元素。
<wsp:MessagePredicate wsp_Usage="wsp:Required">
count(wsp:GetHeader(.)/wsse:Security) = 1
</wsp:MessagePredicate>
4. 安全性考虑事项
强烈“推荐”对策略和断言进行签名,以防止被篡改。
推荐:“不应该”接受此策略,除非它们已签名,并且有一个相关的安全令牌来指定签名者对给定的策略进行了正确的声明。也即依赖方不应该依赖于某个策略,除非该策略已签名并被提供了足够的声明来传递依赖方接受标准。
应该注意的是,本文档中描述的机制应该作为 SOAP 消息的一部分使用 WS-Security [WS-Security] 进行保护,或者使用特定于对象的安全性机制嵌入到其他对象中。
附录 I. 策略的 XPath 表达式
此部分定义了一组使用 XPath [XPATH] 的标准化函数,以简化可以在断言中用来引用消息元素的路径表达式。
将 XPath 表达式的求值上下文 (evaluation context) 定义为包含 SOAP 信封 (SOAP envelope) 的文档。断言元素处使用的命名空间包含自动为 XPath 表达式上下文定义的 XPath 表达式。我们没有定义所有的变量,但的确定义了下面描述的函数(在 SOAP 1.1 [SOAP11] 和 SOAP 1.2 [SOAP12] 上都能实现)。
wsp:GetBody (节点)
该函数从指定的 Envelope 元素返回 SOAP 信封 <S:Body> 元素。
wsp:IsInBody(节点)
如果指定的节点在 SOAP 信封 <S:Body> 元素中,则该函数从指定的 Envelope 元素返回“真”。
wsp:GetHeader(节点)
该函数从指定的 Envelope 元素返回 SOAP 信封 <S:Header> 元素。
wsp:IsInHeader(节点)
如果指定的节点在 SOAP 信封 <S:Header> 元素中,则该函数从指定的 Envelope 元素返回“真”。
wsp:RoleURIForHeaderBlock(节点)
该函数返回指定头块的 SOAP 角色。
wsp:IsMandatoryHeaderBlock(节点)
该函数根据指定的头块是否是强制的 (mustUnderstand = true) 返回“真”或“假”。
wsp:IsRoleURIForNext(节点,字符串)
该函数根据指定的角色是否映射到由所提供消息使用的 SOAP 版本预定义的“下一个 (next)”角色来返回“真”或“假”。
wsp:IsRoleURIForUltimateReceiver(节点、字符串)
该函数根据指定的角色是否映射到由所提供消息使用的 SOAP 版本预定义的“最终接收者 (ultimate receiver)”来返回“真”或“假”。
wsp:GetNodesetForNode(节点)
该函数返回节点的 XPath 节点集(包括节点、其属性、其所有派生节点及这些派生节点的属性)。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
API设计:如何正确开发应用程序接口
在交互组件化软件的世界里,没有比让组件之间以及组件与移动设备和浏览器之间进行连接的应用程序接口(API)更重要的东西了。
-
REST vs. SOAP:如何挑选最好的Web服务
在应用没有任何服务器端的组件情况下,有没有可能直接通过我的应用数据库直接使用这些Web服务?
-
BEST:SOAP/XML和REST的替代方案
虽然拥有大量的机架服务器,以及大量软件开发人员的组织,基于web和集成服务的SOAP和REST很适合他们,但也会出现问题。
-
REST和SOAP 谁使移动应用最受益?
你应该听说过REST,如果在移动应用开发中使用REST,而不是使用SOAP,最大好处是什么?