Serveur proxy

Proxy server : serveur délégué, serveur de délégation.

Besoin

Déléguer les communications réseau à un serveur intermédiaire.

Analyse

On distingue plusieurs types de proxys :

Implémentation

HTTP

Depuis Java 1.1, il est possible de configurer l'utilisation d'un proxy pour les requêtes HTTP.

La classe abstraite java.net.HttpURLConnection dispose en effet d'une méthode usingProxy() indiquant si la connection passe par un proxy HTTP, et la classe privée sun.net.www.http.HttpClient sait gérer

Il faut pour cela effectuer une configuration via les propriétés système Java <strong>http.proxySet</strong>=true <strong>http.proxyHost</strong>=myProxy et <strong>http.proxyPort</strong>=myPort.

FTP

Depuis Java 1.1, il est possible de configurer l'utilisation d'un proxy pour les requêtes FTP.

Il faut pour cela effectuer une configuration via les propriétés système Java ftpProxyHost et ftpProxyPort.

SOCKS

l'implémentation par défaut des sockets (classe non publique java.net.PlainSocketImpl) supporte le protocole SOCKS version 4, et peut être paramétrée pour contacter un serveur SOCKS en fixant la valeur de la propriété Java socksProxyHost, et éventuellement socksProxyPort si le port de ce serveur est différent de 1080 (le port SOCKS par défaut). n1La propriété n2user.name sera également utilisée dans ce protocole.

Cette implémentation par défaut peut aussi être remplacée par une autre (des sockets SOCKS, des sockets compressant leurs données...)

  • grâce à une fabrique de sockets (classe dérivant de java.net.SocketFactory et fournissant une spécialisation de java.net.SocketImpl). Cet possibilité est cependant limitée, dans la mesure où une seule fabrique peut-être utilisée à un moment donné.
  • en dérivant les classes java.net.Socket et java.net.ServerSocket à partir de Java 1.1, où ces classes sont devenues dérivables (elles ne sont plus finales, seules certaines méthodes le sont pour des raisons de sécurité). Cette possibilité peut malgré tout être combinée à l'utilisation de la fabrique de sockets (des sockets spécialisées pourront souhaiter conserver le support des proxys d'une fabriques par exemple).

Exemples