Validar el header de un SOAP

  • Autor Autor ulises2010
  • Fecha de inicio Fecha de inicio
U

ulises2010

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Tengo un servicio SOAP con este server

Insertar CODE, HTML o PHP:
<?php

function myfunction($array) {

  $res = json_decode(json_encode($array), true);

       if ($res['param1'] == 'param1'){
         return true
        }

       return false;
    }


$server = new SoapServer('wsdl.wsdl');
$server->addFunction("myfunction");
$server->handle();

con este wsdl.wsdl

Insertar CODE, HTML o PHP:
<s:complexType name="WSEAuthenticateHeader">
    <s:sequence>
      <s:element minOccurs="1" maxOccurs="1" name="user" type="s:string" />
      <s:element minOccurs="1" maxOccurs="1" name="password" type="s:string" />
    </s:sequence>
    <s:anyAttribute />
    </s:complexType>

Que consumo con este cliente

Insertar CODE, HTML o PHP:
$client=new SoapClient($wsdl ,['trace'=>1,'cache_wsdl'=>WSDL_CACHE_NONE]);

$auth = array(
        'UserName'=>'USERNAME',
        'Password'=>'PASSWORD',
        );
$header = new SoapHeader('s','Auth',$auth,false);

$client->__setSoapHeaders($header);

$params = array('param1' => 'param1', 'param2' => '', 'param3' => '');
$resp  =$client->__soapCall('myfunction', array('parameters' => $params));

// dump response
var_dump($resp);

Y ahora necesito que el servidor sea capaz de analizar el Header que me llega del cliente y que debería tener user y password, pero no soy capaz de dar con ello
 
Atrás
Arriba