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.
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.
Das Intersult HTTP stellt Streaming-Handler zur Verfügung, die ohne diese Automatisierungen arbeiten. Protokolle zur Authentifizierung können dadurch darauf aufbauen, wie das bereits verfügbare NTLM.
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()); } });
URLStreamHandler handler = new com.intersult.net.http.Handler(); URL url = new URL(null, urlString, handler); URLConnection connection = url.openConnection(); ...
URLStreamHandler handler = new com.intersult.net.https.Handler(); URL url = new URL(null, urlString, handler); URLConnection connection = url.openConnection(); ...
Protocols.register();
Dabei ist zu beachten, dass jede URL-Verbindung mit den Intersult HTTP Protokollen betrieben werden. Möglicher Weise möchte man noch die Standard Protokolle verwenden. Dies ist weiterhin möglich, indem ein URL mit dem Standard-Handler konstruiert wird:
URLStreamHandler handler = new com.sun.net.ssl.internal.www.protocol.https.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.
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.