This page (revision-4) was last changed on 17-Aug-2012 10:15 by Dieter Käppel

This page was created on 07-Aug-2012 16:11 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
4 17-Aug-2012 10:15 4 KB Dieter Käppel to previous
3 17-Aug-2012 10:15 3 KB Dieter Käppel to previous | to last
2 07-Aug-2012 16:12 3 KB Dieter Käppel to previous | to last
1 07-Aug-2012 16:11 2 KB Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
Das [Intersult HTTP] sind Streaming-Handler für das [Java] URL-Handling mit NTLM-Unterstützung. Es kann aus dem [Intersult Maven Repository] bezogen werden, ist daher mit [Maven] kompatibel.
Das [Intersult HTTP] sind Streaming-Handler für das [Java] URL-Handling mit NTLM-Unterstützung und arbeitet mit allen Betriebssystemen zusammen. Es kann aus dem [Intersult Maven Repository] bezogen werden, ist daher mit [Maven] kompatibel.
At line 4 changed one line
Die normalen [Java] Streaming-Handler für HTTP- und HTTPS-URLs handeln die Authentifizierung bei Proxy oder Server selbst ab. Der Benutzer hat keine Möglichkeit zum Eingreifen. Entweder die eingebauten Methoden zur Authentifizierung sind ausreichend für den benötigten Zweck, oder der Handler schlägt fehl mit der maximalen Anzahl von Redirects.
Die normalen [Java] Streaming-Handler für HTTP- und HTTPS-URLs handeln die Authentifizierung bei Proxy oder Server unter Windows selbst ab.
At line 6 added 4 lines
Allerdings hat der Benutzer hat keine Möglichkeit zum Eingreifen. Entweder die eingebauten Methoden zur Authentifizierung sind ausreichend für den benötigten Zweck, oder der Handler schlägt fehl mit der maximalen Anzahl von Redirects.
Des Weiteren funktioniert das transparente NTLM nur unter Windows, wenn der entsprechende Account auf der Maschine verfügbar ist. Soll ein anderer Account verwendet werden oder man benutzt ein anderes Betriebssystem, schläft das transparente NTLM fehl.
At line 9 changed one line
!URL mit Intersult HTTP
[Intersult HTTP] enthält mehrere Handler, der NtlmHandler dürfte der interessanteste davon sein. Jedoch können auch die HTTP- und HTTPS-Handler verwendet werden, um eine direktere HTTP-Verbindung herzustellen, ohne die üblichen Authentifizierungsversuche.
!!NTLM
Das NTLM wird durch einen eigenen Handler verwendet:
{{{
NtlmHandler handler = new NtlmHandler();
handler.setUsername("domain\\username");
handler.setPassword("password");
URL url = new URL(null, urlString, handler);
URLConnection connection = url.openConnection();
...
}}}
Der NtlmHandler kapselt einen anderen Handler, hier wird per Default der Intersult HTTP/HTTPS-Handler verwendet, weil der normale Java-Handler die Authentifizierung abfangen und seinerseits verarbeiten würde. Falls kein transparantes NTLM zur Verfügung steht, würde dies sonst fehlschlagen.
Die Authentication kann auch durch den Default-Authenticator gesetzt werden:
{{{
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("domain\\username", "password".toCharArray());
}
});
}}}
!!URL mit Intersult HTTP
At line 19 changed one line
!HTTPS
!!HTTPS
At line 29 changed one line
!Genereller Austausch der Handler
!!Genereller Austausch der Handler
At line 45 changed 2 lines
!NTLM
Das NTLM kann momentan nur durch einen eigenen Handler verwendet werden:
!!Request Method
Die standard HttpURLConnection hat fest die Request Methods GET, POST, HEAD, OPTIONS, PUT, DELETE und TRACE eingebaut. Das Verwenden einer anderen Method ist nicht möglich.
At line 48 changed 7 lines
{{{
URLStreamHandler handler = new com.intersult.net.http.Handler();
handler = new NtlmHandler(handler);
URL url = new URL(null, urlString, handler);
URLConnection connection = url.openConnection();
...
}}}
Die [Intersult] HttpURLConnection nimmt beliebige Request Methods bis zu einer Länge von 256 Zeichen an. Sie kann damit auch als Grundlage für SVN- oder DAV-Anfragen genutzt werden.
At line 56 changed one line
Wie zu sehen ist, kapselt der NtlmHandler einen anderen Handler. Hier muss der [Intersult HTTP]-Handler verwendet werden, weil der normale Java-Handler die Authentifizierung abfangen würde. Falls kein transparantes NTLM zur Verfügung steht, würde dies sonst fehlschlagen.
!!!Hintergründe
Der NtlmHandler kapselt einen anderen URLStreamHandler, hier wird per Default der Intersult HTTP/HTTPS-Handler verwendet, im Konstruktor kann jedoch ein anderer Handler übergeben werden.
Der normale Java-Handler kann nicht verwendet werden, da er die Authentifizierung abfängt und seinerseits verarbeiten. Falls kein transparantes NTLM zur Verfügung steht, würde dies sonst fehlschlagen.