Java Runtime 6 с Socks v5 прокси - Возможно?

Я написал приложение, которое (помимо прочего) запускает локальную службу в Windows, которая действует как прокси SOCKS v5 для Firefox.I '

м в стадии отладки прямо сейчас и нашли определенные сайты, которые нене работает правильно. Например, Java-апплет для загрузки изображений на Facebook.com не работает, потому что не может искать домены.

Мое приложение переопределяет скрытый параметр конфигурации FFnetwork.proxy.socks__remote__dns установив его направда, Основная цель приложения - разрешить доступ к веб-сайтам за брандмауэром (например, если пользователь находится в Китае), поэтому этот параметр важен для обеспечения удаленного разрешения доменов (а не только запросов HTTP).

В настройках JRE6 (задокументированоВот) нетt эквивалентная настройка, и поскольку разрешение удаленного DNS является функцией SOCKS v5, а не v4, поскольку документация подразумевает, что я 'Я беспокоюсь, что этопросто невозможно.

Как программно убедиться, что JRE использует прокси-сервер SOCKS v5 для всех запросов (включая DNS)?

ОБНОВЛЕНИЕ: шаги, чтобы воспроизвести эту проблему:

Убедитесь, что вы находитесь за брандмауэром, который блокирует (или перенаправляет) доступ в Интернетв том числе DNSУстановите PuTTY и добавьте динамический туннель SSH на любой номер порта по вашему выбору (например, 9870). Затем войдите на удаленный сервер, который имеет полный доступ к ИнтернетуЗапустите Firefox, и вы будетене иметь возможность просматривать веб-страницыВ настройках сети FF установите прокси SOCKS v5 на localhost: 9870В FF перейдите по поводу: config, changenetwork.proxy.socks__remote__dns к истинеТеперь вы сможете просматривать веб-страницы.Зайдите на facebook.com, войдите, зайдите в свой профиль и попробуйте использовать Java-апплет загрузки изображений, чтобы добавить несколько картинок.

Это не удастся с рядом не найденных ошибок класса, похожих на:

загрузка: класс com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class не найден.

Я полагаю, что это не удается, поскольку JRE не может разрешить домен, в котором находится класс. Я'основываю это убеждение на том факте, что документация (http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html) говорит только о SOCKS v4 (который, насколько я знаю, не поддерживает удаленный DNS). Мой файл deploy.properties находится в% APPDATA% \ Sun \ Java \ Deployment. Я могу подтвердить, что изменения, которые я делаю в Панели управления Java, записываются в этот файл. Если вместо "Использовать настройки браузера " сетевые настройки для Java я переопределяю и пытаюсь использовать настройки прокси-сервера SOCKS вручную, у меня все еще есть проблема. Похоже, не существует простого способа заставить JRE выполнять DNS удаленно через Прокси.

ОБНОВЛЕНИЕ 2:

Без SOCKS прокси от моего локального клиента

www.facebook.com разрешает до 203.161.230.171upload.facebook.com разрешает до 64.33.88.161

Ни один хост не доступен (из-за брандмауэра)

Если я войду на удаленный сервер, я получу:

www.facebook.com 69.63.187.17upload.facebook.com 69.63.178.32

Оба эти IP-адреса меняются через несколько минут, так как кажется, что Facebook использует циклический DNS и другую балансировку нагрузки.

С настройками прокси-сервера, установленными в Firefox, я могу без проблем перейти на www.facebook.com (поскольку DNS разрешается удаленно на прокси-сервере). Когда я захожу на страницу с Java-апплетом, она выходит из строя с сообщениями трассировки стекамы уже сообщили.

тем не мение если я отредактирую Windows \ System32 \ drivers \ etc \ hosts, добавив правильный IP-адрес для upload.facebook.com IМожно заставить апплет загружаться и работать правильно (иногда требуется перезапуск FF).

Это доказательство, кажется, подтверждает мою теорию, что Java Runtimeне разрешение DNS на Прокси, но вместо этого просто маршрутизация трафика через него.

Мое приложение предназначено для массового развертывания и должно работать с Java-апплетами на других сайтах (не только на Facebook). Мне действительно нужно обойти эту проблему.

ОБНОВЛЕНИЕ 3 Дамп Stacktrace, запрошенный ZZ Coder: I '

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.

Ответы на вопрос(2)

Ваш ответ на вопрос