连接到受密码保护的 Web 服务并解决授权问题
尝试通过 PHP 访问受 WS 安全保护的 Web 服务时,您可能会在配置正确的授权时遇到困难。本指南旨在提供全面的解决方案来解决这些挑战。
对授权问题进行故障排除
解决方案:利用 WsseAuthHeader
要建立安全连接,您可以扩展 SoapHeader 类并创建符合 Wsse 的身份验证标头:
class WsseAuthHeader extends SoapHeader { private $wss_ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'; function __construct($user, $pass, $ns = null) { if ($ns) { $this->wss_ns = $ns; } // ... (rest of the class definition as provided in the answer) } }
创建后,可以将 WsseAuthHeader 对象设置为soap 标头:
$wsse_header = new WsseAuthHeader($username, $password); $x = new SoapClient('{...}', array("trace" => 1, "exception" => 0)); $x->__setSoapHeaders(array($wsse_header));
此方法应成功与受 WS 安全保护的 Web 服务建立经过身份验证的连接。
其他选项
参考其他解决方案:探索其他资源以获取替代方案使用 PHP 访问受 WS 安全保护的 Web 服务的方法,例如:
以上是如何使用 PHP 对受密码保护的 Web 服务进行身份验证?的详细内容。更多信息请关注PHP中文网其他相关文章!