Web 服务策略断言语言(七)

日期: 2007-12-24 来源:TechTarget中国

  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

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐