La cuestion, esque quiero que cuando entren a mi webservice, solo puedan hacerlo mediante un usuario y contraseña. Estoy probandolo con el SoapUI, poniendo el usuario USER y contraseña PASS (son los que quiero).
A la hora de ponerlo, si pongo bien los datos, genera bien la respuesta, pero cuando fallo, no genera nada. Estoy intentandolo generando mi propio mensaje, haciendolo de esta manera $server->fault(), etc. Ahora pongo mi codigo, y a ver si alguien podria ayudarme a conseguirlo.
Código PHP:
global $server;
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : "";
if (doAuthenticate("USER", "PASS")){
$server->service($HTTP_RAW_POST_DATA); //Esto ejecutara todas las funciones
}
else{
//En esta parte quiero que se muestre el mensaje soap con el fault
}
Código PHP:
$return_msg =
'<?xml version="1.0" encoding="ISO-8859-1"?>'.
'<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"'.$ns_string.">\n".
'<SOAP-ENV:Body>'.
'<SOAP-ENV:Fault>'.
$server->serialize_val($server->faultcode, 'faultcode').
$server->serialize_val($server->faultactor, 'faultactor').
$server->serialize_val($server->faultstring, 'faultstring').
$server->serialize_val($server->faultdetail, 'detail').
'</SOAP-ENV:Fault>'.
'</SOAP-ENV:Body>'.
'</SOAP-ENV:Envelope>';
return $return_msg;
Código PHP:
$server->fault('SOAP-ENV:Error', 'Error en la autenticacion');//var_dump($server);
$server->serialize();
Código PHP:
return array(
'faultcode'=>'soap:Server',
'faultstring'=>'Error en la autenticacion'
);