Заголовок SOAP в переполнении стека

У меня есть сложный заголовок SOAP, который не проходит безопасность веб-службы:

Вот необходимый XML:

    <soapenv:Header>
<sec:Customer>
<sec:Name>Name</sec:Name>
</sec:Customer>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>User</Username>
<Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</Password>
</UsernameToken>
</Security>
</soapenv:Header>';

И вот PHP, который я пробовал:

        $client     = new SoapClient($wsdl,        array( 'trace' => 1,'exceptions' => 1));
$cust = array('Name' => "Name");
$token = array('UsernameToken' => array('Username' => "User",'Password' => "Password" ));
$headers = array();
$headers[] = new SoapHeader($ns1,'Customer',$cust);
$headers[] = new SoapHeader($ns2,'Security',$token);
$client->__setSoapHeaders($headers);

-1

Решение

Заголовки WsSecutiry являются специальными и их сложно установить. Они не объявлены как другие общие Мыльные Заголовки.

Ваш заголовок WsSecurity довольно прост, в то время как он может быть более сложным, если он включает в себя дайджест пароля, одноразовые номера и другую информацию о метках времени. Заголовок WsSecurity можно легко добавить с помощью WsSecurity проект.

Вы должны быть уверены в том, что отправлено (SoapClient :: __ getLastRequest ()) и вы должны быть уверены, что он соответствует ожидаемому, если вы не хотите получить ошибку в ответ. Если у вас по-прежнему возникает ошибка, сначала обратитесь к поставщику веб-услуг.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector