web-dev-qa-db-fra.com

Java Web Start: impossible de tunneler via un proxy depuis Java 8 Update 111

Certains de nos clients ne peuvent plus exécuter notre client Java Web Start depuis Java 8 Update 111. Ils obtiennent:

Java.io.IOException: impossible de tunneler via un proxy. Le proxy retourne "Authentification proxy HTTP/1.1 407 requise

On dirait que cela a à voir avec ceci changement :

Désormais, les mandataires nécessitant une authentification de base lors de la configuration d'un tunnel pour HTTPS ne réussira plus par défaut. Si nécessaire, ceci Le schéma d'authentification peut être réactivé en supprimant Basic du fichier jdk.http.auth.tunneling.disabledSchemes, ou par définir une propriété système du même nom sur "" (vide) sur le fichier ligne de commande.

Existe-t-il un moyen si les clients ne souhaitent pas modifier leur méthode d'authentification par proxy? 

Remarque: L'ajout de <property name="jdk.http.auth.tunneling.disabledSchemes" value=""/> à <resources> du JNLP n'a aucun effet. En effet, seules quelques propriétés sont prises en charge de cette manière (une liste se trouve au bas de cette page ). "jdk.http.auth.tunneling.disabledSchemes" ne figure pas parmi eux.

13
Marcus

J'ai découvert qu'il y avait un moyen, mais pas entre les mains du développeur: l'utilisateur peut ajouter 

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

pour Java 8 dans le Panneau de configuration Java → Java → Afficher ... → Paramètres d'exécution

pour Java 9 dans le Panneau de configuration Java → Paramètres du bureau → Paramètres d'exécution

16
Marcus

Si vous souhaitez le faire à l'exécution, vous pouvez définir la valeur de la propriété jdk.http.auth.proxying.disabledSchemes en ajoutant

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

à la méthode principale de votre application.

2
bj03rnv0ss

Je rencontrais également ce problème lorsque je tentais d'accéder à un service Web SOAP externe via un serveur proxy utilisant l'authentification de base pour une application s'exécutant sur Apache Tomcat. 

La définition de la propriété par programme (System.setProperty ("jdk.http.auth.tunneling.disabledSchemes", "");) au cours de l'initialisation de l'application n'a pas fonctionné . Il devait être défini comme VM-Argument ou (pas très gentil bien sûr :)) dans [JRE_HOME]\lib\net.properties.

0
David Elsener