Entwickler-Ecke

Internet / Netzwerk - SOAP Header hinzufügen


Fienix - Mi 07.10.09 08:47
Titel: SOAP Header hinzufügen
Hi,

ich versuche gerade eine SOAP Schnittstelle umzusetzen, soweit läuft das Teil auch erstmal.
Die Problematik kommt bei der Authentifizierung über Web Services Security [http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf] per Username.

Soweit ich das verstanden habe muss ich mir den SOAP Header selber definieren und registrieren, aber ich finde nirgends ein Beispiel.
Gibt es vielleicht auch die Möglichkeit den XML Code der SOAP Schnittstelle selber zu erweitern?

Ich finde noch nicht mal ein richtigen Ansatz :cry:


Keldorn - Mi 07.10.09 21:06

Hallo,

hatte ich ja in deinem anderen Thread [http://www.delphi-forum.de/viewtopic.php?t=93470] schon angedeutet:

- Du packst eine HttpRio-Kompo mit auf die Form.
- die hat die Eigenschaften Httpwebnode, dort kannst Du username und password einstellen
- dort, wo du den webservice aufrufst, mußt du als letzten Parameter den erstellten HttpRio übergeben

Delphi-Quelltext
1:
Webservice:=GetI_xyz(false,'',HttpRio);                    


die Base64-Kodierung macht Delphi alleine, Delphi baut den entpsrechenden Authentifizierungseintrag im Header selber auf und den Header siehst Du auch nicht.
aber evtl hast Du weitere Vorgaben vom Anbieter, wie der username genau aussehen soll.

wenn du in den groups suchst, kannst du auch mal nach "authentification" suchen, da findest du auch weitere Beispiele. Da sind Beispiele zu finden, die noch einen Timeout abfangen, das habe ich persönlich noch nicht benötigt.

Gruß Frank


Fienix - Do 08.10.09 09:33

Das hilft mir nicht weiter es ist etwas komplizierter.

eine große Hilfe war mir folgende Threads:

WSSE Header zu Authentifikation [https://forums.codegear.com/thread.jspa?messageID=161775]

XML Daten vor dem Senden bearbeiten [http://www.delphigroups.info/2/5/346312.html]

Nach knapp 3 Monaten suchen, fummeln, Foren durchsuchen und Mails mit Codegear austauschen läuft es endlich so wie es soll.