Мне нужно подключиться к веб-службе, для которой требуются учетные данные в виде простого имени пользователя и пароля.
У меня есть общее представление о SOAP, и мне удалось подключиться к другим открытым веб-службам, которым не требуется имя пользователя или пароль, используя NuSOAP.
Мне было отправлено следующее:
<?php
// Set up security options
$security_options = array("useUsernameToken" => TRUE);
$policy = new WSPolicy(array("security" => $security_options));
$security_token = new WSSecurityToken(array(
"user" => "xxx",
"password" => "xxx",
"passwordType" => "basic"));
// Create client with options
$client = new WSClient(array("wsdl" => "https://xxx.asmx?wsdl",
"action" => "http://xxx",
"to" => "https://xxx",
"useWSA" => 'submission',
"CACert" => "cert.pem",
"useSOAP" => 1.1,
"policy" => $policy,
"securityToken" => $security_token));
// Send request and capture response
$proxy = $client->getProxy();
$input_array = array("From" => "2010-01-01 00:00:00",
"To" => "2010-01-31 00:00:00");
$resMessage = $proxy->xxx($input_array);
?>
После некоторых исследований я понимаю, что в приведенной выше реализации используется wso2. Мне нужно быть в состоянии сделать это без использования wso2.
Я старался изо всех сил искать ресурсы (Google, форумы и т. Д.) Об этом, но не смог ничего найти. Я прочитал несколько учебных пособий по SOAP и смог настроить клиент SOAP с использованием PHP, но не могу разобраться со всеми аутентификациями и «политиками».
Объяснение того, как этого добиться, и, возможно, некоторые ссылки на дальнейшее чтение об этом, будет очень цениться, так как я вырываю свои волосы! В идеале я хотел бы получить ссылки на ресурсы для абсолютного новичка в аутентификации SOAP.
Спасибо. P.S. Некоторые из ссылок / учетных данных в приведенном выше, возможно, были xxx'd для конфиденциальности.