HTTP Basic Authentication in Axis(SOAP)

ÂbraXø5

Mitglied
Hallo,

ich habe schon Tagelang mit suchen verbracht, wie man in den HTTP Header einen Authorization: Basic ... Eintrag machen kann. Ich habe aber leider nichts gefunden.
Vlt. kann mir hier jmd helfen. Ich habe einen ServiceClient, der an einen Service eine SOAP Nachricht schicken soll. Das ganze läuft ja über http bzw. https. Wie kann ich nun in den HTTP Header Username und Passwort hinzufügen?
Vielen Dank schonmal im Voraus.

Viele Grüße,
Abra
 
Hilft dir das?

http://www.html-world.de/program/http_6.php

Da steht unter anderem das...

Authorization

Mittels des Authorization-Headers wird die Authentifizierung des Clients beim Server durchgeführt. HTTP 1.0 arbeitet hier nach dem BASIC-Schema. Als Wert wird dabei zuerst das Wort BASIC gefolgt von einem Leerzeichen und dem mit Base64 codierten Benutzernamen und Passwort verwendet. Benutzername und Passwort werden hierbei durch ein Doppelpunkt :)) voneinander getrennt. Im folgenden Beispiel wird der Benutzername HTMLWorld und das Passwort Internet verwendet:

Authorization: BASIC SFRNTFdvcmxkOkludGVybmV0

Mit HTTP 1.1 wird außerdem das Verfahren Digest vorgestellt. Mehr dazu im Kapitel "Anwendungsbeispiele".

So und hier ist nun auch noch ein Base64 encoder

http://www.motobit.com/util/base64-decoder-encoder.asp

HF
 
Zuletzt bearbeitet:
Danke für die Antwort. Aber, wie das ganze am Ende aussehen muss, weiß ich schon.
Ich möchte nur wissen, wie die Implementierung in Java aussieht.
Ich habe mittels wsdl2java (eclipse) mir einen Stub und einen CallBackhandler erstellt.
In einer eigenen Client klasse kann ich auch ohne Probleme die SOAP's abschicken.
Nur diese Messages dann mit Basic Authentication auszustatten, ist das Problem.
Ich habe in einigen Foren und auch in der Axis Erklärung gefunden, dass es wohl so aussehen müsste:
Code:
MyServiceStub stub = new MyServiceStub();
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
				 auth.setUsername("user");
				 auth.setPassword("pwd");
				 auth.setPreemptiveAuthentication(true);
stub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
Mittels TCPmon kann ich jedoch sehen, dass "Authorization: Basic ...... " nicht in den Header hinzugefügt wird...
 
Hallo,

also ich habe das Problem gelöst (schon vor längerer Zeit hab nur vergessen hier rein zu schreiben ^^)
Die Lösung steht im Endeffekt oben (CodeSchnipsel). Man sollte nur drauf achten, dass man auch mit diesem Stub, den man da erstellt hat, dann auch die Methoden des Services aufruft. ^^

Gruß,
Abra
 

Neue Beiträge

Zurück