web-dev-qa-db-de.com

Java Web Start: Proxy-Tunneln seit Java 8 Update 111 nicht möglich

Einige unserer Kunden können unseren Java Web Start-Client seit Java 8 Update 111 nicht mehr ausführen. Sie erhalten:

Java.io.IOException: Proxy-Tunnel nicht möglich. Proxy gibt zurück "HTTP/1.1 407 Proxy - Authentifizierung erforderlich

Sieht so aus, als hätte es mit diesem change zu tun:

Nun, Proxies, die beim Einrichten eines Tunnels eine Standardauthentifizierung erfordern für HTTPS wird standardmäßig nicht mehr erfolgreich sein. Falls erforderlich, diese Das Authentifizierungsschema kann durch Entfernen von Basic aus der .__-Datei wieder aktiviert werden. jdk.http.auth.tunneling.disabledSchemes-Netzwerkeigenschaft oder durch Setzen einer Systemeigenschaft mit demselben Namen auf "" (leer) in der Befehlszeile.

Gibt es eine Möglichkeit, wenn Kunden nicht bereit sind, ihre Proxy-Authentifizierungsmethode zu ändern? 

Hinweis: Das Hinzufügen von <property name="jdk.http.auth.tunneling.disabledSchemes" value=""/> zu <resources> des JNLP hat keine Auswirkungen. Dies liegt daran, dass nur wenige Eigenschaften auf diese Weise unterstützt werden (eine Liste befindet sich am unteren Rand von dieser Seite ). "jdk.http.auth.tunneling.disabledSchemes" gehört nicht dazu.

13
Marcus

Ich habe herausgefunden, dass es eine Möglichkeit gibt, aber nicht in den Händen des Entwicklers: Der Benutzer kann hinzufügen 

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

für Java 8 in der Java-Systemsteuerung → Java → Ansicht ... → Laufzeitparameter

für Java 9 in der Java-Systemsteuerung → Desktop-Einstellungen → Laufzeitparameter

16
Marcus

Neben der Antwort von mbee kann man dies auch in der net.properties - Datei des jre konfigurieren:

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

Derzeit muss die letzte Zeile 100 auskommentiert werden:

Vor:

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

Nach:

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

Beachten Sie, dass beide Antworten nach einem Java) Update wiederholt werden müssen, obwohl das Java) Auto Update bei der Basic Internet Proxy Authentication deaktiviert ist.

6
jan

Wenn Sie dies zur Laufzeit tun müssen, können Sie den Wert der Eigenschaft jdk.http.auth.proxying.disabledSchemes durch Hinzufügen festlegen

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

zur Hauptmethode Ihrer Anwendung.

2
bj03rnv0ss

Dieses Problem hatte ich auch beim Versuch, über einen Proxy-Server auf einen externen SOAP - Webservice mit BASIC-Authentifizierung für eine Anwendung zuzugreifen, die auf Apache Tomcat ausgeführt wird. 

Festlegen der Eigenschaft programmgesteuert (System.setProperty ("jdk.http.auth.tunneling.disabledSchemes", "");) während der Anwendungsinitialisierung hat nicht funktioniert . Es musste als VM-Argument oder (nicht sehr schön :)) in [JRE_HOME]\lib\net.properties gesetzt werden.

0
David Elsener