java runtime 6 con calcetines v5 proxy - ¿Posible?

He escrito una aplicación que (entre otras cosas) ejecuta un servicio local en Windows que actúa como un proxy SOCKS v5 para Firefox.

Estoy en la fase de depuración en este momento y he encontrado ciertos sitios web que no funcionan correctamente. Por ejemplo, el applet de Java para la carga de imágenes en Facebook.com falla porque no puede buscar dominios.

Mi aplicación anula una configuración de configuración FF ocultanetwork.proxy.socks__remote__dns configurándolo paracierto. El propósito de la aplicación es permitir el acceso a sitios web cuando se encuentra detrás de un firewall (por ejemplo, si el usuario está en China), por lo que esta configuración es esencial para garantizar que los dominios también se resuelvan de forma remota (y no solo las solicitudes HTTP).

En la configuración de JRE6 (documentadoaquí) no hay una configuración equivalente, y como la resolución de DNS remota es una característica de SOCKS v5 y no v4, ya que la documentación parece implicar que me preocupa que simplemente no sea posible.

¿Cómo puedo asegurarme de que el JRE utiliza un proxy SOCKS v5 para todas las solicitudes (incluido el DNS)?

ACTUALIZACIÓN: Pasos para reproducir este problema:

Asegúrese de estar detrás de un servidor de seguridad que bloquea (o redirige) el acceso a Internetincluyendo DNSInstale PuTTY y agregue un túnel SSH dinámico en el número de puerto que elija (por ejemplo, 9870). Luego inicie sesión en un servidor remoto que tenga acceso completo a InternetEjecuta Firefox y lo harásno ser capaz de navegar por la webEn la configuración de red FF, configure el proxy SOCKS v5 en localhost: 9870En FF vaya a about: config, changenetwork.proxy.socks__remote__dns a verdadAhora podrás navegar por la web.Vaya a facebook.com, inicie sesión, vaya a su perfil e intente utilizar el applet java del cargador de imágenes para agregar algunas imágenes

Fallará con una serie de errores de clase no encontrados que se parecen a:

load: class com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class no encontrado.

Creo que esto está fallando porque el JRE no puede resolver el dominio en el que reside la clase. Estoy basando esta creencia en el hecho de que la documentación (http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html) habla solo sobre SOCKS v4 (que, que yo sepa, no es compatible con DNS remoto). Mi archivo deploy.properties se encuentra en% APPDATA% \ Sun \ Java \ Deployment. Puedo confirmar que las modificaciones que hago en el Panel de control de Java se escriben en ese archivo. Si en lugar de "Usar la configuración del navegador" la configuración de red para Java anulo e intento usar la configuración del proxy SOCKS manualmente, todavía tengo el problema. No parece haber una manera fácil de forzar al JRE a hacer DNS de forma remota a través del Proxy.

ACTUALIZACIÓN 2:

Sin el proxy SOCKS, desde mi cliente local

www.facebook.com resuelve a 203.161.230.171upload.facebook.com resuelve a 64.33.88.161

Ninguno de los hosts es accesible (debido al firewall)

Si inicio sesión en el servidor remoto, obtengo:

www.facebook.com 69.63.187.17subir.facebook.com 69.63.178.32

Ambas direcciones IP cambian después de unos minutos, ya que parece que Facebook usa DNS de tipo round-robin y otro equilibrio de carga.

Con la configuración de Proxy configurada en Firefox, puedo navegar a www.facebook.com sin ninguna dificultad (ya que DNS se está resolviendo de forma remota en el Proxy). Cuando voy a la página con el applet de Java, falla con los mensajes de seguimiento de pila que ya he informado.

sin embargo si edito Windows \ System32 \ drivers \ etc \ hosts, agregando la IP correcta para upload.facebook.com Ipuede hacer que el applet se cargue y funcione correctamente (a veces es necesario reiniciar FF).

Esta evidencia parece apoyar mi teoría de que el tiempo de ejecución de Java esno resolviendo DNS en el Proxy, pero en lugar de eso, simplemente enrutando el tráfico.

Mi aplicación es para implementación masiva y necesita trabajar con applets de Java en otros sitios (no solo en Facebook). Realmente necesito una solución para este problema.

UPDATE 3 Stacktrace volcado a pedido por ZZ Coder:

load: class com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class not found.
java.lang.ClassNotFoundException: com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 7 more
Exception: java.lang.ClassNotFoundException: com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class

Dumping class loader cache...
 Live entry: key=http://upload.facebook.com/controls/2008.10.10_v5.5.8/,FacebookPhotoUploader5.jar,FacebookPhotoUploader5.jar, refCount=1, threadGroup=sun.plugin2.applet.Applet2ThreadGroup[name=http://upload.facebook.com/controls/2008.10.10_v5.5.8/-threadGroup,maxpri=4]
Done.

Respuestas a la pregunta(2)

Su respuesta a la pregunta