Java-апплет, работающий в прокси-настроенной среде (корпоративные сети) - PullRequest
1 голос
/ 06 июня 2011

У меня проблема с подписанным Java-апплетом, который выполняет простые HTTPS-запросы к нашему серверу (используя URL-адрес Java, классы подключений).Все выглядит нормально для большинства клиентов.Однако у нас есть несколько клиентов в корпоративной сети, которые находятся за прокси-сервером, который требует аутентификации (возможно, аутентификацию на основе входа в систему Windows).И для этих клиентов мы часто слышим такие отзывы, как:

Приложение работает очень медленно, хотя скорость нашей сети составляет 20 Мбит / с.20 Мбит / с - это огромная скорость, чтобы наше приложение работало идеально.Итак, мой первый вопрос, а именно следующий:

1) Может ли прокси анализировать содержание наших запросов и, таким образом, влиять на производительность приложения.И может ли это быть только специфической для Java проблемой?

Следующая часть посвящена Java и апплетам Java.Из форумов, которые я знаю, есть проблема с выбором Java правильного прокси, настроенного в Браузере.Иногда апплет Java не может определить прокси, настроенный в IE, и единственное решение - настроить его также в панели управления Java.Сказав это, следующий вопрос:

2) Принимая во внимание, что прямое соединение для корпоративных клиентов не разрешено и панель управления Java не настроена должным образом, это может быть в том случае, если плагин Javaвыбирает другой - неправильный прокси, через который он в конечном итоге получает доступ к серверам и, таким образом, приводит к очень низкой производительности?

Я также пытался использовать Apache HttpClient (http://hc.apache.org/httpcomponents-client-ga/),, чтобы проверить, как он работает в такой средеЯ настроил клиента, как указано в учебнике по Apache, для автоматического получения прокси-сервера JRE:

httpclient = new DefaultHttpClient();

    ProxySelectorRoutePlanner routePlanner = new ProxySelectorRoutePlanner(
            httpclient.getConnectionManager().getSchemeRegistry(),
            ProxySelector.getDefault());  
    httpclient.setRoutePlanner(routePlanner);

И мы столкнулись с ошибкой, требующей проверки подлинности (407), когда мы пытаемся выполнить запросы через httpclient Apache.407 proxy authentication required. the ISA server requires authorisation to fulfill the request Итак, последний вопрос об этих различиях между Apache и клиентом Java.

3) Как Java-апплет выбирает прокси?и Чем логика выбора клиента Apache отличается от логики Java?

Пожалуйста, поделитесь любым подтвержденным опытом, который может оказаться полезным для моей ситуации.

Заранее спасибо.

1 Ответ

4 голосов
/ 14 июля 2011

3) Как Java-апплет выбирает прокси?
Поведение по умолчанию:
Апплет проверяет панель управления \ java \ сеть \ настройки сетевого прокси
и использует прокси в соответствии с конфигурацией там.
Установка системных свойств для апплета не работает.
то есть:

System.setProperty("java.net.useSystemProxies","true"); 
System.setProperty("http.proxyHost", "1.1.1.1");
System.setProperty("http.proxyPort", "8080"); 

Если вы хотите изменить выбор прокси для апплета. тогда вы можете использовать класс ProxySelector.
Также проверьте этот вопрос Как установить http-proxy-in-an-applet
Вы можете найти это полезным.

...