Pourquoi Java a choisi un proxy SOCKS pour votre requête HTTP
Inspectez le résultat du ProxySelector et les réglages JVM effectifs avant d'appliquer d'anciens contournements de proxy Windows.
Une requête Java peut rencontrer plusieurs sources de proxy : la configuration explicite du client, le sélecteur par défaut, les propriétés réseau de la JVM et les réglages pris en charge du système d'exploitation. Lorsqu'un journal mentionne SOCKS de façon inattendue, identifiez quelle source l'a choisi.
Pour le code qui utilise le sélecteur par défaut, inspectez la décision pour la destination exacte :
URI target = URI.create("https://example.com/");
ProxySelector selector = ProxySelector.getDefault();
if (selector != null) {
System.out.println(selector.select(target));
}
Cela indique les candidats du sélecteur. Cela ne prouve pas quelle connexion a finalement abouti, et un client disposant de son propre itinéraire explicite peut faire un autre choix.
Vérifier les réglages effectifs
Examinez http.proxyHost, https.proxyHost, socksProxyHost, leurs ports et java.net.useSystemProxies. La documentation des propriétés réseau du JDK décrit leur portée et leur priorité. La découverte du proxy système est vérifiée au démarrage ; définissez-la délibérément au lancement de la JVM.
Les réponses historiques décrivent des combinaisons précises d'anciennes boîtes de dialogue Windows et d'anciens JDK. Ces rapports peuvent expliquer l'origine d'un contournement, mais ils n'établissent pas qu'un environnement d'exécution actuel présente le même défaut. Notez la version de l'environnement d'exécution et la sortie du sélecteur avant de modifier les réglages du système d'exploitation pour toutes les applications.
Si l'application a besoin d'un proxy HTTP pour un client, une configuration de proxy explicite peut clarifier cette exigence. Si elle a besoin d'un routage automatique centralisé, cherchez pourquoi le sélecteur a reçu ou renvoyé l'entrée SOCKS inattendue.
Un sélecteur personnalisé doit préserver les contournements intentionnels et la gestion des échecs. Filtrer sans discernement tous les candidats SOCKS peut rompre des connexions censées en utiliser un. Corrigez la règle incorrecte avec la portée la plus réduite que vous puissiez identifier.