HTTP-Digest-Authentifizierung mit HttpUrlConnection

8

Ich versuche, eine Verbindung zum Tomcat Web Server auf meinem Computer mit einer Digest-Authentifizierung herzustellen. Ich benutze die Speicherwelt von Tomcat. Hier ist, wie der Server konfiguriert ist:

1) In server.xml:

%Vor%

2) In tomcat-users.xml

%Vor%

3) In web.xml meines Webprojekts:

%Vor%

Wie Sie sehen können, habe ich als Digest-Methode "MD5" angegeben und das Passwort mit der Datei "Digest.sh" von Tomcat verschlüsselt.

Hier ist mein Code auf der Client-Seite:

%Vor%

Ich denke, dass mein clientseitiger Code in Ordnung ist und auch die Konfiguration des Servers. Obwohl der Server mir weiterhin den Statuscode 401 mit der Nachricht "Nicht autorisiert" sendet. Da ich kein erfahrener Java-Entwickler bin, möchte ich fragen, ob jemand eine Idee hat oder einen Fehler in meiner Implementierung sieht.

Vielen Dank im Voraus!

    
user485624 24.10.2010, 14:01
quelle

4 Antworten

5

Die Digestauthentifizierung ist weitaus komplexer als das Senden von username:password (das ist eigentlich die Standardauthentifizierung ... und das username:password -Tupel muss Base64-codiert sein!).

Sie können alles über Digest hier lesen.

Wenn Sie HttpUrlConnection nicht benötigen, sehen Sie sich diese zwei Projekte an:

Beide unterstützen bereits Digest (und andere nützliche Dinge) aus der Box.

    
biasedbit 24.10.2010 14:20
quelle
4

Ich bin in der Lage, es nach dem Code arbeiten, lassen Sie mich wissen, wenn ich etwas verpasse;

%Vor%     
Maths 06.11.2010 00:58
quelle
3

Verwenden Sie den folgenden Code, es funktioniert.

%Vor%     
Yandrapu 18.11.2014 23:21
quelle
2

HttpUrlConnection ist OK für einfache Jobs, aber wenn Sie etwas mit erweiterten Funktionen (wie Digest-Authentifizierung) möchten, würde ich Commons HTTP-Client.

    
Mike Baranczak 24.10.2010 15:44
quelle

Tags und Links