Мне интересно, как реализовать аутентификацию заголовка мыла на сервере веб-службы мыла с использованием библиотеки NuSoap.
Я видел много примеров о клиенте NuSoap, но хочу реализовать это на сервере.
Мне интересно, как реализовать аутентификацию заголовка мыла на сервере веб-службы мыла с использованием библиотеки NuSoap.
Я видел много примеров о клиенте NuSoap, но хочу реализовать это на сервере.
Объект soapserver содержит заголовок soap в виде ассоциативного массива в свойстве requestHeader, поэтому, если вы сможете найти способ получить экземпляр сервера из своей функции, вы сможете получить soapHeader.
<?php
require_once './nusoap/nusoap.php';
//Declare the server as a global, for brevity
global $server;
//Instantiate, configure and run as usual
$server = new nusoap_server();
$server->configureWSDL("namespace...", "...");
$server->register("myHandler");
$server->service(isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '');
//My handling function:
function myHandler() {
//Get your server instance:
global $server;
//Abra Kadabra alakazam! your soap header :D
var_dump($server->requestHeader);
}
Очевидно, для этого есть лучшие методы кодирования, но вы поняли идею. Кроме того, whatchout для свойства requestHeaders, так как оно содержит заголовки HTTP, а не заголовок SOAP, помните: requestHeader БЕЗ завершающей буквы 's' — ваш выбор.