PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   SoapClient mit Authorization Basic Header (http://www.selfphp.de/forum/showthread.php?t=25784)

lupo72 12.02.2016 14:00:39

SoapClient mit Authorization Basic Header
 
Ich muss einen SoapClient zu einem Webservice mit Anmeldedaten erstellen.

Der Server verlangt das die Authentfizierung per Header Authorization Basic mitgeschickt wird - mit SoapUI bekomme ich die Connection indem ich die Authorization "basic" mit angebe wie kann ich das in PHP nachbauen?

Dieser Header wird verlangt - so schickt ihn SoapUI

POST http://aktuell.kundeninformation.net/api/soap/v6 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 302
Host: aktuell.kundeninformation.net
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Authorization: Basic [user&pass-base64-encoded]

So sieht mein Code momentan aus - ich versuche die Authorisierung per SoapHeader zu setzen

$namespace = "http://ecircle.com/developer/ecmapi";
$wsdl = "https://sslh.teradatadmc.com/teradata/api/soap/v6?wsdl";
$client = new SoapClient($wsdl, array("trace" => 1, "exceptions" => 0));
$login = 'xxx';
$password = 'yyy';
$header = new SoapHeader($namespace, 'Authorization: Basic', base64_encode($login. ':' $password));
$client->__setSoapHeaders($header);


Der Server lehnt die Verbindung mit Error 401 Unauthorized ab

Laut Stacktrace wird auch lediglich dieser Header empfangen:

public '__last_request_headers' => string 'POST /api/soap/v6 HTTP/1.1
Host: aktuell.kundeninformation.net
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.5.12
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 584

Kann mir jemand einen Hinweis geben, wie ich dem SoapClient einen Authorization Basic Header voranstellen kann?

Domi 15.02.2016 13:39:54

AW: SoapClient mit Authorization Basic Header
 
Hi und willkommen im Forum,

du könntest versuchen mal user und pass direkt in die URL mit einzugeben:

PHP-Code:

'http://'.$sUser.':'.$sPass.'@bla.test.de/app/api'

Denke das sollte schon mal den ersten Erfolg bringen ;)

lupo72 16.02.2016 15:59:50

AW: SoapClient mit Authorization Basic Header
 
Hallo,

danke für die Rückmeldung - ich habe den Fehler inzwischen selber gefunden:

Es funktioniert über die zusätzlichen Parameter "login" und "password" (s.a. php.net/soapclient)

$client = new SoapClient($wsdl, array('login' => $login, 'password' => $password));

Grüße,
Lupo


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:03:48 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.