jueves, 11 de agosto de 2011

Servidores proxy y Java

Voy a empezar haciendo amigos. La inmensa mayoría de programadores tienen nociones tirando a nulas de redes de comunicaciones. Y bueno, es cierto, la gente de sistemas tampoco es que sepa mucho de programación. Pero a menudo estos mundos se tocan. Servidores de aplicaciones, webservices, bases de datos... hay redes de comunicaciones por todas partes.

En la empresa en la que trabajamos han capado la salida a internet de la peor forma posible: con un servidor proxy que nos da salida a Internet. Y configuraron el proxy en el controlador de dominio de Windows.

Las aplicaciones Java no cogen por defecto la configuración del sistema operativo. Muchas aplicaciones Java tienen una pestaña de preferencias en las que poder configurar el proxy (si procede) para salir a Internet. Pero, ¿cómo se programa esto?

En Java hay tres propiedades para especificar la configuración del proxy
  • http.proxyHost ( por defecto, vacío )
  • http.proxyPort ( por defecto, 80 si se especifica http.proxyHost )
  • http.nonProxyHosts ( por defecto, vacío ) . Lista de excepciones de proxy separadas por comas.
Que se pueden especificar de dos maneras :
  • Por línea de comandos:
java -Dhttp.proxyHost=10.10.1.1 -Dhttp.proxyPort=3128 App
  • Programáticamente :
System.setProperty("http.proxyHost","10.10.1.1");
System.setProperty("http.proxyPort","3128");

También es posible especificar un java.net.Proxy en muchos métodos de conexión del api de Java como en el método new Url("http://www.google.com/").openConnection(proxy);

Por último, comentar que es posible habilitar la selección automática del proxy del sistema con:
java -Djava.net.useSystemProxies=true

No hay comentarios:

Publicar un comentario