gpt4 book ai didi

PHP SOAP ws-安全

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:56 24 4
gpt4 key购买 nike

我必须使用 SOAP 与在 .Net 上编写的 Web 服务进行通信。此 Web 服务需要使用证书和用户/密码进行 ws-security 身份验证。身份验证定义如下:

<security mode="Message">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>

有没有为 PHP 实现 ws-security 的库?或者,也许在某个地方可以找到一个很好的例子来说明如何使用 PHP 的 SoapClient 来实现它?我找到的只是一个仅适用于 UserNameToken 的片段:

$ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';

$token = new \stdClass();
$token->Username = new \SoapVar('<username>', XSD_STRING, null, null, null, $ns);
$token->Password = new \SoapVar('<password>', XSD_STRING, null, null, null, $ns);

$wsec = new \stdClass();
$wsec->UsernameToken = new \SoapVar($token, SOAP_ENC_OBJECT, null, null, null, $ns);

$headers = new \SoapHeader($ns, 'Security', $wsec, true);

$this->soapClient = new \SoapClient('<wsdlurl>',array());

$this->soapClient->__setSoapHeaders($headers);

但是服务响应

The security context token is expired or is not valid. The message was not processed.

最佳答案

看看NuSoap

我很多年前就用过它,它比默认的 php soap 客户端更先进。尤其是跨平台交流的时候

关于PHP SOAP ws-安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9209129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com