it-swarm.com.ru

Java Веб-запуск: невозможно проложить туннель через прокси, поскольку Java 8 Обновление 111

Некоторые из наших клиентов больше не могут запускать наш Java клиент Web Start после Java 8 обновления 111. Они получают:

Java.io.IOException: Невозможно туннелировать через прокси. Прокси-сервер возвращает HTTP/1.1 407 Proxy Authentication Required

Похоже, это связано с этим изменить :

Теперь прокси, требующие базовой аутентификации при настройке туннеля для HTTPS, больше не будут работать по умолчанию. При необходимости эту схему проверки подлинности можно повторно активировать, удалив Basic из сетевого свойства jdk.http.auth.tunneling.disabledSchemes или установив системное свойство с тем же именем на "" (пустое) в командной строке.

Есть ли способ, если клиенты не хотят менять свой метод аутентификации по доверенности?

Примечание: Добавление <property name="jdk.http.auth.tunneling.disabledSchemes" value=""/> к <resources> JNLP не имеет никакого эффекта. Это потому, что только несколько свойств поддерживаются таким образом (список внизу эта страница ). "jdk.http.auth.tunneling.disabledSchemes" не входит в их число.

13
Marcus

Я обнаружил, что есть один способ, но не в руках разработчика: пользователь может добавить 

-Djdk.http.auth.tunneling.disabledSchemes=""

для Java 8 в Панели управления Java → Java → Вид ... → Параметры времени выполнения

для Java 9 в Панели управления Java → Настройки рабочего стола → Параметры времени выполнения

16
Marcus

Помимо ответа mbee можно также настроить это в файле net.properties jre:

C:\Program Files (x86)\Java\jre1.8.0_131\lib\net.properties

В настоящее время последняя строка 100 должна быть закомментирована:

До:

 #jdk.http.auth.proxying.disabledSchemes=
 jdk.http.auth.tunneling.disabledSchemes=Basic

После:

 #jdk.http.auth.proxying.disabledSchemes=
 #jdk.http.auth.tunneling.disabledSchemes=Basic

Обратите внимание, что оба ответа необходимо повторить после обновления Java, хотя автоматическое обновление Java деактивируется с помощью обычной проверки подлинности через интернет-прокси.

6
jan

Если вам требуется сделать это во время выполнения, вы можете установить значение свойства jdk.http.auth.proxying.disabledSchemes , добавив

System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");

к основному методу вашего приложения.

2
bj03rnv0ss

У меня тоже была эта проблема при попытке доступа к внешнему веб-сервису SOAP через прокси-сервер с использованием BASIC-аутентификации для приложения, работающего на Apache Tomcat. 

Установка свойства программно (System.setProperty ("jdk.http.auth.tunneling.disabledSchemes", "");) во время инициализации приложения не работает . Его нужно было установить как VM-Argument или (конечно, не очень приятно :)) в [JRE_HOME]\lib\net.properties.

0
David Elsener