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.