Sebastiano06
Mitglied
Hallo, ich entwickle derzeit eine SOAP-Schnittstelle und der Entwickler des SOAP-Servers meint es mit der Sicherheit wirklich gut ich muss die SessionID in der Abfrage und in einem Cookie (bzw. per URL-Rewriting) übertragen!
Ich starte eine neue SoapClient Instanz und nenne dem Server das zu verwendende WSDL-File.
Ich übertrage dem Server als erstes meinen Benutzer und mein Pass!
Die Schnittstelle liefert mir eine Sessionid zurück, wenn der Login korrekt war.
Mit dessen Hilfe setze ich dann ein Cookie.
Das funktioniert ja auch alles wunderbar. Allerdings habe ich nun das Problem, dass die Schnittstelle so komplex ist, dass ich ganze 15 .wsdl-Files habe! Also muss ich doch, wenn ich richtig in der annahme gehe für jedes .wsdl-File eine eigene SoapClient Instanz starten oder? Das mache ich zumindest und übergebe die Sessionid. Wenn ich allerdings mithilfe der Sessionid dann ein weiteres Cookie in der neuen Instanz setze, dann funktioniert das irgendwie nicht richtig und ich bekomme einen SOAP-Fault zurück wenn ich versuche eine andere Abfrage zu starten.
Eine weitere Möglichkeit wäre die Übertragung der Sessionid per url-rewriting, ist das mit PHP SOAP möglich?
Oder kann ich was noch viel einfacher wäre mehrere .wsdl-Files in eine SOAP-Instanz laden?
Ich starte eine neue SoapClient Instanz und nenne dem Server das zu verwendende WSDL-File.
PHP:
$this->soapclient_obj = new SoapClient('file.wsdl',array('trace' => 1));
Ich übertrage dem Server als erstes meinen Benutzer und mein Pass!
PHP:
$result = $this->soapclient_obj->login(array("LoginRequest"=>$params));
Mit dessen Hilfe setze ich dann ein Cookie.
PHP:
$this->soapclient_obj->__setCookie ( "JSESSIONID", $sessionid);
Das funktioniert ja auch alles wunderbar. Allerdings habe ich nun das Problem, dass die Schnittstelle so komplex ist, dass ich ganze 15 .wsdl-Files habe! Also muss ich doch, wenn ich richtig in der annahme gehe für jedes .wsdl-File eine eigene SoapClient Instanz starten oder? Das mache ich zumindest und übergebe die Sessionid. Wenn ich allerdings mithilfe der Sessionid dann ein weiteres Cookie in der neuen Instanz setze, dann funktioniert das irgendwie nicht richtig und ich bekomme einen SOAP-Fault zurück wenn ich versuche eine andere Abfrage zu starten.
Eine weitere Möglichkeit wäre die Übertragung der Sessionid per url-rewriting, ist das mit PHP SOAP möglich?
Oder kann ich was noch viel einfacher wäre mehrere .wsdl-Files in eine SOAP-Instanz laden?