Foros del Web » Programando para Internet » PHP »

NuSoap autentificación sin $_SERVER

Estas en el tema de NuSoap autentificación sin $_SERVER en el foro de PHP en Foros del Web. Buenas amigos, Estoy trasteando el NuSOAP. Mi objetivo es realizar un "prototipo" de autentificación cliente-servidor. Se trata de un código bastante básico. El problema que ...
  #1 (permalink)  
Antiguo 10/02/2011, 10:35
 
Fecha de Ingreso: enero-2011
Ubicación: sergigp.com
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
NuSoap autentificación sin $_SERVER

Buenas amigos,

Estoy trasteando el NuSOAP. Mi objetivo es realizar un "prototipo" de autentificación cliente-servidor. Se trata de un código bastante básico. El problema que tengo es que en mi servidor, por diferentes motivos que no vienen al caso, no puedo utilizar variables $_SERVER para realizar la autentificación en la parte del servidor.

Me preguntaba si alguien habia tocado NuSoap y habia realizado algo similar y si hay una alternativa para hacerlo sin variables $_SERVER.

Os copio el código a ver si alguien me puede echar una mano :)

server.php

Código PHP:
<?php

require_once('lib/nusoap.php');

$username = "user";
$password = "password";


$miURL = 'http://www.moveit.es';
$server = new soap_server();
$server->configureWSDL('ws_idgl', $miURL);
$server->wsdl->schemaTargetNamespace = $miURL;


$server->register('funcionPrueba', // Nombre de la funcion
        
array(), // Parametros de entrada
        
array('return' => 'xsd:string'), // Parametros de salida
        
$miURL);

function 
funcionPrueba() {
    global 
$username;
    global 
$password;

    
$respuestaDefecto = "Hola Pedro ! :D";
    if (isset(
$_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
        if ((
$_SERVER['PHP_AUTH_USER'] == $username) && ($_SERVER['PHP_AUTH_PW'] == $password)) {
            return new 
soapval('return', 'xsd:string', $respuestaDefecto);
        }
    }
    return new 
soapval('return', 'xsd:string', "No autorizado");
}

if (!isset(
$HTTP_RAW_POST_DATA))
    
$HTTP_RAW_POST_DATA = file_get_contents('php://input');

$server->service($HTTP_RAW_POST_DATA);
?>
client.php
Código PHP:
<?php

require_once('lib/nusoap.php');
// Crear un cliente apuntando al script del servidor (Creado con WSDL) -
// Las proximas 3 lineas son de configuracion, y debemos asignarlas a nuestros parametros
$serverURL = 'http://www.moveit.es';
$serverScript = 'server.php';
$metodoALlamar = 'funcionPrueba';
$username = "user";
$password = "password";
$authtype = "basic";

// Crear un cliente de NuSOAP para el WebService
$cliente = new nusoap_client("$serverURL/$serverScript?wsdl", 'wsdl');
$cliente->setCredentials($username, $password, $authtype);
// Se pudo conectar?
$error = $cliente->getError();
if (
$error) {
    echo 
'<pre style="color: red">' . $error . '</pre>';
    echo 
'<p style="color:red;' > htmlspecialchars($cliente->getDebug(), ENT_QUOTES) . '</p>';
    die();
}



$result = $cliente->call(
                
"$metodoALlamar", // Funcion a llamar
                
array(), // Parametros pasados a la funcion
                
"uri:$serverURL/$serverScript", // namespace
                
"uri:$serverURL/$serverScript/$metodoALlamar" // SOAPAction
);


// Verificacion que los parametros estan ok, y si lo estan. mostrar respuesta
if ($cliente->fault) {
    echo 
'<b>Error: ';
    
print_r($result);
    echo 
'</b>';
} else {
    
$error = $cliente->getError();
    if (
$error) {
        echo 
'<b style="color: red">Error: ' . $error . '</b>';
    } else {
        echo 
'Respuesta: ' . $result;
    }
}
?>
los datos de usuario y contraseña luego deberán venir por base de datos. Provisionalmente lo he hecho con variables.

Saludos y gracias :)

Etiquetas: nusoap, server
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:14.