lunes, 28 de junio de 2010

HTTPS hostname wrong

Al acceder a una URL como en el post anterior pero utilizando la dirección IP se me pesentó el siguiente error:

java.io.IOException: HTTPS hostname wrong: should be <10.1.84.139>

Encontré en algún lado que para poder pasar esa verificación de hostname se puede crear un HostNameVerifier y setearlo como el que se va a usar por defecto en la aplicación:
HostnameVerifier hv = new HostnameVerifier() {
  public boolean verify(String urlHostName, SSLSession session){
    return true;
  }
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
Lo que no entendí es por qué falla la verificación, si al poner la siguiente línea dentro del método verify:
System.out.println("HostName: " + urlHostName + " sessionHost: " + session.getPeerHost());

El resultado es:
HostName: 10.1.84.139 sessionHost: 10.1.84.139