AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi HTTP Basic Authentication bei SOAP
Thema durchsuchen
Ansicht
Themen-Optionen

HTTP Basic Authentication bei SOAP

Offene Frage von "dominikkv"
Ein Thema von dominikkv · begonnen am 12. Dez 2009 · letzter Beitrag vom 14. Dez 2009
Antwort Antwort
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#1

HTTP Basic Authentication bei SOAP

  Alt 12. Dez 2009, 14:18
Hallo,

beim Zugriff auf eine API (Webservice) wird eine HTTP Basic Authentication über SSL benötigt.

Hier ein Ausschnitt aus einem mitgelieferten Beispiel in PHP:
Code:
  require_once('SOAP/Client.php');
  $client = new SOAP_client('https://a.b.domain.net/namespace/');
 
  // Protocol version must be HTTP 1.1.
  $client->setOpt('curl', CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
 
  // curl comes with a number of predefined certifiers it recognizes. We use Thawte, which is not
  // a part of this set. There should be a better way of dealing with this, see curl documentation.
  // we here just don't verify the peer.
  $client->setOpt('curl', CURLOPT_SSL_VERIFYPEER, FALSE);
 
  // username and password
  $client->setOpt('curl', CURLOPT_USERPWD, "Benutzername:Passwort");
Sehe ich das richtig dass hier die HTTP-Version auf 1.1, der Benutzername + PW für die HTTP Basic Authentication gesetzt werden und die Überprüfung des SSL-Zertifikats ausgeschaltet wird?

Kommen wir zu meinem Versuch in Delphi
Ich habe über den WSDL-Import eine neue Unit erstellt. Der Aufruf sieht so aus:
Delphi-Quellcode:
var
  rio: THttpRio;

procedure TfrmMain.btnTestClick(Sender: TObject);
var
  WebService: WebServiceSoap;
begin
  rio := THTTPRIO.Create(self);
  rio.HTTPWebNode.UserName := 'Benutzername';
  rio.HTTPWebNode.Password := 'Passwort';
  rio.HTTPWebNode.OnBeforePost := self.HttpRioHttpWebNodeBeforePost;


  WebService:= GetWebServiceSoap(False, '', rio);
  mmoLog.Lines.Add(WebService.WebServiceAction('0').SqlXml);
end;

procedure TfrmMain.HttpRioHttpWebNodeBeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
begin
   if not InternetSetOption(Data,
                      INTERNET_OPTION_HTTP_VERSION,
                      PChar('HTTP/1.1'), // stimmt das?!
                      System.Length('HTTP/1.1')) then
       ShowMessage(SysErrorMessage(GetLastError));

   if not InternetSetOption(Data,
                      INTERNET_OPTION_USERNAME,
                      PChar(rio.HTTPWebNode.UserName),
                      System.Length(rio.HTTPWebNode.UserName)) then
       ShowMessage(SysErrorMessage(GetLastError));

   if not InternetSetOption(Data,
                      INTERNET_OPTION_PASSWORD,
                      PChar(rio.HTTPWebNode.Password),
                      System.Length (rio.HTTPWebNode.Password)) then
       ShowMessage(SysErrorMessage(GetLastError));
end;
Dabei hat mir dieser Thread weitergeholfen.
Ich denke, HTTP Basic Authentication habe ich abgehackt, bei der HTTP-Version bin ich mir nicht sicher, ob ich das richtig gemacht habe. Fehlt nur noch die SSL-Zertifikat-Überprüfung-Abschaltung

Jemand ne Idee, wie ich das abschalten kann?

Es kommt übrigens diese Fehlermeldung wenn ich versuche das auszuführen:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse ESOAPHTTPException mit der Meldung 'The certificate authority is invalid or incorrect - URL:https://a.b.domain.net/namespace - SOAPAction:https://a.b.domain.net/namespace/WebServiceAction' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Danke für eure Hilfe
Dominik
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: HTTP Basic Authentication bei SOAP

  Alt 14. Dez 2009, 10:30
Wenn ihr mir wenigstens sagen könntet ob ich auf dem richtigen Weg bin wäre das eine Hilfe.

Liegt es wirklich nur an SSL?
Habe ich die HTTP-Version richtig angegeben?
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz