Proxy-Server

Der Lobster Integration Server (und dadurch auch Lobster_data) kann ausgehende Netzwerkverbindungen über Proxy-Server aufbauen. Kriterium ist hier die Richtung des Verbindungsaufbaus der TCP-Connection, nicht die Datenrichtung. In der Java Virtual Machine werden drei Proxy-Typen unterstützt.


  • HTTP-Proxy. Kann HTTP-Verbindungen vermitteln.

  • FTP-Proxy. Kann FTP-Verbindungen vermitteln.

  • SOCKS-Proxy. Für die Vermittlung aller TCP-Verbindungen.


Sobald ein SOCKS-Proxy konfiguriert ist, gehen alle TCP-Verbindungen über ihn, auch HTTP(S)- und FTP-Verbindungen.

Falls eine zusätzliche Authentifizierung am Proxy erforderlich ist, verfügt der Integration Server (und dadurch Lobster_data) über einen Authenticator, der die Anmeldung am Proxy durchführt. Der Authenticator akzeptiert Passworte in Klartext oder obfuscated.

Andernfalls muss der Proxy nicht-authentifizierte Verbindungen zulassen.

Da wir nicht alle Funktionen der Standard-Implementierung so verifizieren konnten, wie sie von Oracle beschrieben werden, wurde zusätzlich zum Authenticator auch ein Proxy Selector entwickelt, mit dem u. a. auch Proxy-Ausnahmen für SOCKS konfiguriert werden können. Diese spezielle Lobster-Implementierung kann über die folgende System-Property (siehe Kapitel oben) deaktiviert werden.


-Dhub.disableProxyHandling=true


Dann fällt das Verhalten zurück auf die Standard-Implementierung, die hier beschrieben wird (und an anderen Stellen, teilweise abweichend).


http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html
http://docs.oracle.com/javase/6/docs/technotes/guides/net/properties.html


Die Verwendung von Proxies wird zur Startzeit des Integration Servers über System-Properties gesteuert. Nachfolgend eine Liste der Property-Namen für die drei Proxy-Typen.

HTTP-Proxy


System-Property

Beschreibung

-Dhttp.proxyHost

IP-Adresse oder DNS-Name des HTTP-Proxys. Default: <none>.

-Dhttp.proxyPort

Portnummer des HTTP-Proxys. Default: 80, wenn -Dhttp.proxyHost gesetzt ist.

-Dhttp.nonProxyHosts

Liste der Hostnamen/Adressen, die nicht über HTTP-Proxy, sondern direkt verbunden werden sollen. Mehrere Einträge werden mit | getrennt. Jeder Eintrag kann einen Platzhalter * enthalten. Default: <none>.

-Djava.net.http.username

User für die Authentifizierung beim HTTP-Proxy. Default: <none>.

-Djava.net.http.password

Passwort für die Authentifizierung beim HTTP-Proxy in Klartext oder obfuscated. Default: <none>.

FTP-Proxy


System-Property

Beschreibung

-Dftp.proxyHost

IP-Adresse oder DNS-Name des FTP-Proxys. Default: <none>.

-Dftp.proxyPort

Portnummer des FTP-Proxys. Default: 21, wenn -Dftp.proxyHost gesetzt ist.

-Dftp.nonProxyHosts

Liste der Hostnamen/Adressen, die nicht über FTP-Proxy, sondern direkt verbunden werden sollen. Mehrere Einträge werden mit | getrennt. Jeder Eintrag kann einen Platzhalter * enthalten. Default: <none>.

-Djava.net.ftp.username

User für die Authentifizierung beim FTP-Proxy. Default: <none>.

-Djava.net.ftp.password

Passwort für die Authentifizierung beim FTP-Proxy in Klartext oder obfuscated. Default: <none>.

SOCKS-Proxy


System-Property

Beschreibung

-DsocksProxyHost

IP-Adresse oder DNS-Name des SOCKS-Proxys. Default: <none>.

-DsocksProxyPort

Portnummer des SOCKS-Proxys. Default: 1080, wenn -DsocksProxyHost gesetzt ist.

-Djava.net.socks.username

User für die Authentifizierung beim SOCKS-Proxy. Default: <none>.

-Djava.net.socks.password

Passwort für die Authentifizierung beim SOCKS-Proxy in Klartext oder obfuscated. Default: <none>.


Leider erlaubt die Standard-Implementierung in der Java Virtual Machine keine Ausnahmen für SOCKS-Proxies. Wir haben deshalb, durch die Lobster-Implementierung von Authenticator und ProxySelector, eine Möglichkeit geschaffen, solche Ausnahmen für alle drei Proxy-Arten in der Konfigurationsdatei ./etc/exclude_proxy.properties zu definieren. Hier wird die IP-Adresse oder der DNS-Hostname für Computer erwartet, zu denen die Verbindung direkt erfolgen soll, also ohne Proxy. Pro Zeile wird eine Ausnahme erwartet. Der Platzhalter * ist zulässig.

Wenn die gesamte Datei nicht existiert, werden per Default die Adressen 127.0.0.1 (Loopback-Adresse) und 0.0.0.0 (alle lokalen Adressen dieser Maschine) und der Name localhost (Name für Loopback) angenommen.