Configuración de proxy en Eclipse

03/11/2010


Configurar un proxy HTTP en Eclipse es bastante sencillo.

  1. Abrir Window –> Preferences
  2. Pulsar General/Network Connections
  3. Marcar Manual proxy configuration
  4. Introducir la dirección del proxy HTTP
  5. Introducir el puerto del proxy HTTP
  6. Pulsar OK

El problema viene cuando quieres excluir alguna dirección para que no pase por el proxy. Según la documentación podemos añadir direcciones a la lista “No proxy for” por nombre o patrón (“Use this table to specify, either by name or pattern, which hosts should not use any proxy but instead should always be connected to directly. “), pero en ninguna parte se especifica qué tipo de patrones admite.

Buceando por el código fuente del plug-in de servicios web, me encontré con el siguiente método;


/*
* This method is used to generate a valid regular expression for a
* normal java String used in the proxy mechanism.
* For example, the http.nonProxyHosts contains following String:
* "192.168.2.*|localhost|*.ibm.com" . It would be
* transformed into: "192\.168\.2\.\w*|localhost|\w*\.ibm\.com"
* Thus, following host string would match above pattern:
* 192.168.2.5 192.168.2. 192.168.2.666 192.168.2.w
* localhost
* torolab.ibm.com .ibm.com 123.ibm.com
*
* Two transformations are done:
* 1. replace all "." into "\." As in regular expression, '.' represents
* any charater. "\.' represents the real character '.'
* 2. In order to get the real meaning of "*" used in property
* http.nonProxyHosts, "\w*" is used to replace "*"
* "\w" represent a word character: [a-zA-Z_0-9]
*
* Restriction:
* The validity of address is not checked.
* (192.168.2.555 and 192.168.2.com are OK)
*
* TODO check whether * occurs in address or hostname.
* if it occuus in address representation, replace "*" with "\d*"
* and check: value < 256 ?
*/
private String createPatternFromString(String str)
{
/* This is the same as following more understandable way:
* return str.replace(".", "\\.").replace("*", "\\w*");
* But, replace(CharSequence target, CharSequence replacement) can only be
* supported after j2se 1.5, on the other hand,
* replaceAll(String regex, String replacement) can be supported before
* j2se 1.5.
*/
return str == null ? null : str.replaceAll("\\.", "\\.").replaceAll("\\*", "\\w*");
}

Lo cual me lleva a la conclusión que los “patrones” soportados únicamente incluyen el uso del ‘*’ en cualquier parte del nombre o dirección IP del host añadido.

Por ejemplo, lo que en Firefox sería 10.228.23.0/24, en Eclipse sería 10.228.23.* (vamos, al estilo Internet Explorer).

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: