J'ai besoin de configurer l'authentification proxy contre un proxy de chaussettes.
J'ai découvert Cet article a> Donner des instructions qui semblent fonctionner avec des proxies HTTP communs. httpclient.getHostConfiguration().setProxy("proxyserver.example.com", 8080);
HttpState state = new HttpState();
state.setProxyCredentials(new AuthScope("proxyserver.example.com", 8080),
new UsernamePasswordCredentials("username", "password"));
httpclient.setState(state);
5 Réponses :
the Page d'Apache httpClient dit: P >
connexions transparentes via des proxies de chaussettes (version 4 et 5) à l'aide de la prise en charge de la prise Java natif. P> blockQuote>
avec "transparent", je suppose qu'ils signifient que cela fonctionne sans que vous ayez besoin de faire quelque chose de spécial. Avez-vous un proxy de chaussettes disponible quelque part? Vous ne pouvez pas simplement l'essayer pour voir si cela fonctionne? P>
Je ne peux pas installer de proxy de chaussettes sur mon lieu de travail, mais je vais tester cela plus rapidement sur un site client. Merci
Java prend en charge la configuration proxy Socks via des préférences:
socksproxyhost code> pour le nom d'hôte du serveur proxy SOCKS LI>
-
socksproxyport code> pour le numéro de port, la valeur par défaut étant 1080 code> li>
ul> par exemple p> xxx pré> ( edit fort>) pour votre exemple, si le proxy SOCKS a été configuré dans la voie décrite avant: < / p> xxx pré> Vous pouvez également utiliser cette variante (sans httpclient): p> xxx pré> donc complétant l'exemple précédent, nous pouvons maintenant ajouter : p> xxx pré> hth p> p>
Chaussettes n'est pas supportée par httpClient 3 Nativement. Vous pouvez essayer le support de chaussettes dans JDK comme suggéré par d'autres. L'effet secondaire est que tout votre JVM passera par le même proxy chaussettes.
Java 5 prend en charge l'authentification du nom d'utilisateur / mot de passe dans des chaussettes (type 2). Tout ce que vous avez à faire est de configurer l'authentificateur comme celui-ci, p> à nouveau, cela peut ne pas fonctionner pour vous, car il affecte toute l'authentification de votre JVM (HTTP Auth. ). P> p>
Vous pouvez fournir une prise de courant personnalisée qui implémente le protocole Socks et l'enregistre en tant que votre gestionnaire de protocole HTTP par défaut. Cette solution a une limitation de la réponse du tuergeiste ci-dessus: elle s'applique globalement à toute connexion HTTP que vous établissez via httpClient.
Si vous trouvez cela un problème, jetez un coup d'œil à
Une autre solution possible, qui est mon favori personnel, est d'écrire un proxy http wrapper sur le proxy de chaussettes. P>
Le lien semble mort
J'ai essayé et ça marche bien. p> p>
Si vous faites cela à Tomcat, il définit la propriété pour tout Tomcat JVM. D'autres applications pourraient ne pas vouloir que cela.