使用Apache Axis2和Rampart对包括元素ReplyTo、To、MessageId和Action在内的所有标



我需要对soap消息中的WS-Addressing元素进行签名。是否可以使用apacheaxis2-ws地址和rampart?

我发现了这个例子-sample2http://axis.apache.org/axis2/java/rampart/samples.html.但是ws寻址元素没有签名。

编辑

这是我的策略文件中的定义。它不起作用!

<wsp:Policy wsu:Id="DefaultEndpoint_Echo_output_policy">
<wsp:ExactlyOne>
  <wsp:All>
    <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
      <sp:Body/>
      <sp:Header Name="To" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
      <sp:Header Name="From" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
      <sp:Header Name="FaultTo" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
      <sp:Header Name="ReplyTo" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
      <sp:Header Name="MessageID" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
      <sp:Header Name="RelatesTo" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
      <sp:Header Name="Action" Namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
    </sp:SignedParts>
  </wsp:All>
</wsp:ExactlyOne>

我已经通过从SignedParts标签中删除所有子标签来解决这个问题

所以我的政策定义是这样的。

<wsp:ExactlyOne>
  <wsp:All>
    <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy</sp:SignedParts>
  </wsp:All>
</wsp:ExactlyOne>

我发现,只要你不定义任何用于签名的标记,并且只包含空标记SignedParts,它就会自动对所有标头和正文进行签名。

最新更新