HTTP HTTPClient Authentication - Quickr Server

Mentos05

Mitglied
Hallo zusammen,
ich arbeite zurzeit an einem Tool, welches Dateien auf einen Quickr-Server updaten soll.
Dafür muss ich mich logischerweise beim Uploadvorgang authentifizieren, was ich mithilfe von Apaches httpclient machen wollte. (HttpClient - HttpClient Home)

Allerdings bekomme ich immer den Fehler:
Jul 11, 2012 2:15:50 PM org.apache.commons.httpclient.HttpMethodDirector processWWWAuthChallenge
INFO: No credentials available for BASIC '/LotusQuickr/123'@xxxxxxx.xxxx.de.xxx.com:80

Mein Code schaut wie folgt aus:
Java:
public void loadUpdate() throws HttpException, IOException{
	
		HttpClient client = new HttpClient();
		
		client.getState().setCredentials(
		new AuthScope("xxxxxxx.xxxx.de.xxx.com", 80, "realm"),
		new UsernamePasswordCredentials("username", "password")
		);
		
PostMethod post = new PostMethod("http://xxxxxxx.xxxx.de.xxx.com/dm/atom/library/_P123_RMain.nsf/view");
		
		post.setDoAuthentication(true);
		
		int status = client.executeMethod( post );
        System.out.println(status + "\n" + post.getResponseBodyAsString());
		
	}

Weiß jemand, wo der Fehler liegt?
Laut der Fehlermeldung fehlen ja angeblich Credentials... aber die habe ich ja bei setCredentials angegeben eigentlich. ???:L

Mit freundlichen Grüßen
Mentos05
 
I

ign0rant

Gast
Gibst Du auch den richtigen Realm an (dritter Parameter des Konstruktors von AuthScope)? In Deinem Fall vermutlich "/LotusQuickr/123" (oder AuthScope.ANY_REALM).
 

tagedieb

Top Contributor
"realm" sollte den Authentisierungsbereich angeben.

Nach der Fehlermeldung zu urteilen muesste die wohl eher "LotusQuickr" oder "LotusQuickr/123" lauten.
 

Mentos05

Mitglied
Ich habe es jetzt mit "LotusQuickr", "LotusQuickr/123" und AuthScope.ANY_REALM probiert und bekomme weiterhin die gleiche Fehlermeldung...

Der generelle Codeaufbau ist aber richtig, oder?

Noch eine Frage, gibt es sonst eine andere Möglichkeit (opensource!) Multipart Requests mit Files zu versenden?
 
N

nillehammer

Gast
Habe mal versucht, was über quickr rauszukriegen. Scheint ja irgendwas von Lotus zu sein, das man über einen Websphere-Server aufrufen kann. Wie dat aussieht, hab ich leider nicht gefunden. Darum Fragerunde:
  • Verwendet Quickr überhaupt HTTP-Auth? Nicht vielleicht doch ein Login-Formular?
  • Wenn ja, verwendet Quickr wirklich Basic-Auth?
 

tagedieb

Top Contributor
Der HttpClient sucht Credentials für folgenden AuthScope:
Scheme: BASIC
Realm: '/LotusQuickr/123'
Host: xxxxxxx.xxxx.de.xxx.com
Port: 80

So gesehen sieht eigentlich alles ok aus. Man koennte noch probieren den Scheme noch zusaetzlich auf BASIC zu setzen, ist aber bloss eine zusaetzliche Einschraenkung und sollte nichts mit dem Problem zu tun haben.


Versuch's mal mit AuthScope.ANY, der müsste für alle passen.

Java:
client.getState().setCredentials(
        AuthScope.ANY,
        new UsernamePasswordCredentials("username", "password")
        );

Ansonsten solltest du mal die Methode
Code:
HttpMethodDirector.processWWWAuthChallenge(final HttpMethod method)
durch debuggen..
 

tagedieb

Top Contributor
Ich glaube der Realm ist
Code:
/LotusQuickr/123
. Mit führendem '/'!! Dann müsste es meiner Meinung nach gehen...
 

Mentos05

Mitglied
Ja Quickr verwendet einen http-Login.
Ich hatte zu Anfang mal mit HttpURLConnection gearbeitet und dabei kam folgendes heraus:

Java:
public String Login() {

		String userpassword = "username"
				+ ":"
				+ "password";
		
		String encodedCredentials = Base64.encodeBase64String(userpassword
				.getBytes());

HttpURLConnection connection;

connection = (HttpURLConnection) new URL(
				"http://xxxxxxx.xxxx.de.xxx.com/dm/atom/library/_P123_RMain.nsf/view)
		.openConnection();

	}
connection.setRequestProperty("Authorization",
				"Basic " + encodedCredentials);
}

Das hatte nämlich funktioniert, kann ich aber nicht brauchen, da ich Multipart Requests verschicken muss...
Ist ja ein http-Login mit Basic Auth.

Habe als Realm jetzt auch alles durchprobiert... Ich fürchte ich muss mir irgendwas anderes suchen, um das zu realisieren.
 

tagedieb

Top Contributor
Mit dem HttpClient müsste es schon funktionieren.

Hast du's mal mit AuthScope.ANY probiert?
Am besten mal durchdebuggen und sehen warum er die Credentials nicht finden will.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
G apache httpClient Problem. Netzwerkprogrammierung 5
B HttpClient Netzwerkprogrammierung 2
M Apache HTTPClient Server log ausgeben ?! Netzwerkprogrammierung 3
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
R Apache HttpClient File Download? Netzwerkprogrammierung 3
H Java 1.4 HTTPClient Content von PutMethod Netzwerkprogrammierung 4
M need org.apache.commons.httpclient.* Netzwerkprogrammierung 8
K Login via apache httpclient Netzwerkprogrammierung 4
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
M Dateiupload mittels HttpClient Netzwerkprogrammierung 3
F FileUpload mit commons HttpClient Netzwerkprogrammierung 17
T HTTP Apache Commons HttpClient Bibliothek Netzwerkprogrammierung 2
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
H Bilder mit HttpClient hochladen Netzwerkprogrammierung 3
T Apache HttpClient & Default Headers Netzwerkprogrammierung 9
T apache HTTPClient einloggen Netzwerkprogrammierung 2
T HttpClient - Senden via Post Netzwerkprogrammierung 12
M httpclient kann sich nicht auf asp.net Seite anmelden Netzwerkprogrammierung 2
Q HTTPS mit Apache HttpClient Netzwerkprogrammierung 4
M Seltsame Fehlermeldung (httpclient) Netzwerkprogrammierung 6
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
E HttpClient und return Problem Netzwerkprogrammierung 6
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
J Jakarta HTTPClient Netzwerkprogrammierung 5
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
C HTTPS mit Apache HTTPClient Netzwerkprogrammierung 1
M org.apache.commons.httpclient.HttpClient Netzwerkprogrammierung 3
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3
T Javamail with authentication Netzwerkprogrammierung 9
P Basic Authentication Netzwerkprogrammierung 11
TiME-SPLiNTER HTTP User Authentication: Java Client -> Webserver Netzwerkprogrammierung 7
G Server Client + Authentication Netzwerkprogrammierung 3
AlexSpritze Authentication Problem bei WebServices Netzwerkprogrammierung 4
gieser HTTP SSL Client Authentication Netzwerkprogrammierung 1
KNeuhaus (Windows) Authentication VON einer Java-App aus. Netzwerkprogrammierung 2
A HTTP-Authentication Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben