PEAR:Soap Header

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PEAR:Soap Header

    Hallo zusammen,


    ich bastele grad an einem Authentifizierungsmechanismus
    für SOAP-Kommunikation via Header.

    Ich will an meinen Server im Header einen String, PWD
    oder Ticket, übergeben und dann entsprechend auswerten.

    So weit, so einfach.

    PHP-Code:
    require_once "SOAP/Client.php";            
    $soap = new SOAP_Client("http://localhost/SOAP_Projekt/ep_vor_server.php");      
    $header = new SOAP_Header      
    (          
    "{http://localhost/SOAP_Projekt/}HeaderLogin",          
    "string",          
    "abc123",          
    1      
    );      
    $soap->addHeader($header); 
    Folgendes wird an den Server übermittelt:

    POST /SOAP_Projekt/ep_vor_server.php HTTP/1.0
    User-Agent: PEAR-SOAP 0.8.0RC4-devel
    Host: localhost
    Content-Type: text/xml; charset=UTF-8
    Content-Length: 612
    SOAPAction: ""

    <?xml version="1.0" encoding="UTF-8"?>

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:ns4="http://localhost/SOAP_Projekt/"
    xmlns:ns5="urn:webservice"
    >
    <SOAP-ENV:Header>

    <ns4:HeaderLogin SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next" SOAP-ENV:mustUnderstand="1">abc123</ns4:HeaderLogin>
    </SOAP-ENV:Header>

    ...

    Zurück bekomme ich allerding ein SOAP-Fault mit dem Hinweis
    dass der Server den Header nicht versteht.

    Serverseitig geht es um folgenden Code:

    PHP-Code:
            function HeaderLogin($s)
            {
                if(
    $s == "abc123")
                {
                    
    $GLOBALS["Authentifizierung"] = TRUE;    
                }
                return new 
    SOAP_Value("{http://localhost/SOAP_Projekt/}HeaderLoginResponse""string"$s);    
                
    //return $s;
            


    Meiner Meinung müßte das klappen...

    Falls jemand eine Idee hat woran es liegt wäre ich für
    einen Hinweis dankbar...


    dN
Lädt...
X