我在 Zend 框架中有一个肥皂服务器,并在请求到达soap_server 之前添加了一个过滤器来解析标头并允许 wsse。这工作正常。
昨天我接到一个电话,标题中 Security 元素的属性为 MustUnderstand=1。然后,soap_server 会抛出:header not understand。
是否可以采取一种解决方法让 zend_soap_server 忽略标头上的 mustunderstand=1 ?
我在 Zend 框架中有一个肥皂服务器,并在请求到达soap_server 之前添加了一个过滤器来解析标头并允许 wsse。这工作正常。
昨天我接到一个电话,标题中 Security 元素的属性为 MustUnderstand=1。然后,soap_server 会抛出:header not understand。
是否可以采取一种解决方法让 zend_soap_server 忽略标头上的 mustunderstand=1 ?
只需实现一个称为 Attribute 的函数,如果不需要,则在其中不执行任何操作。
不要在其中使用“return”语句,因为它可以在不处理正文的情况下返回消息
例子
<SOAP-ENV:Header>
<wsa5:To SOAP-ENV:mustUnderstand="true">http://www.xxx.yyy.zzz/</wsa5:To>
<wsa5:Action SOAP-ENV:mustUnderstand="true">someData</wsa5:Action>
</SOAP-ENV:Header>
您必须实现这样的类:
Class MySoapServer{
private $bar;
private $foo;
public function To( $data )
{
$this->bar = $data;
}
public function Action( $data )
{
//do Nothing!
}
public function Method1( $message )
{
//....
return $returnedValues;
}
}