在WS-SecurityPolicy中的两个不同策略之间自动选择

时间:2013-03-07 10:24:56

标签: java web-services ws-security

我想使用WS-SecurityPolicy规范为Web服务编写可选策略,例如,如果客户端具有可以签署Soap Header的证书,但如果不是,则可以始终使用Web服务签名。

任何想法?

THX

1 个答案:

答案 0 :(得分:1)

为此目的制定了政策选择。您可以在策略中指定两个不同的备选方案,然后客户端可以选择要使用的策略。这是一个例子:

<wsp:Policy ...>
  <wsp:ExactlyOne>
    <wsp:All> 
      <!-- SecurityPolicy assertions for signing go here, e.g.: -->
      <sp:SignedParts ...>
         <sp:Header ... />
      </sp:SignedParts>
    </wsp:All> 
    <wsp:All>
      <!-- Policy alternatives may also be empty -->
   </wsp:All>
  </wsp:ExactlyOne>
</wsp:Policy> 

客户端可以选择由<wsp:All />封装的两个备选方案中的一个。所以在这种情况下它可以对标题进行签名,但它不必。有关详细信息,请参阅the WS-Policy Specification on Policy Alternatives