You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Jens Borgland (JIRA)" <ji...@apache.org> on 2018/12/12 15:14:00 UTC

[jira] [Created] (HTTPCLIENT-1955) Proxy authentication doesn't fully work when using system properties

Jens Borgland created HTTPCLIENT-1955:
-----------------------------------------

             Summary: Proxy authentication doesn't fully work when using system properties
                 Key: HTTPCLIENT-1955
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1955
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: HttpClient (classic)
    Affects Versions: 4.5.6
            Reporter: Jens Borgland


*Repro*:
 # Set up an authenticating HTTP proxy (I used Squid)
 # Specify the {{https.proxyHost}}, {{https.proxyPort}}, {{https.proxyUser}} and {{https.proxyPassword}} system properties
 # Specify {{useSystemProperties}} when creating the client
 # Make a call (to an HTTPS target)

*Result*:

The call fails with a 407.

*Expected*:
That the client would be able to authenticate towards the proxy.

Example code:

{code:java}
  System.setProperty("https.proxyHost" , "localhost");
  System.setProperty("https.proxyPort" , "3128");
  System.setProperty("https.proxyUser", "squid");
  System.setProperty("https.proxyPassword", "squid");

  CloseableHttpClient httpclient = HttpClients.custom().useSystemProperties().build();
  HttpGet httpGet = new HttpGet("https://www.google.com");
  CloseableHttpResponse res = httpclient.execute(httpGet);
  System.out.println(res.getStatusLine());
{code}

*Technical*:
The reason that it doesn't work is that the {{AuthScope}} given to {{SystemDefaultCredentialsProvider}} uses "http" as scope (the {{SystemDefaultRoutePlanner}} always selects "http") but {{SystemDefaultCredentialsProvider}} uses this protocol as part of the name of the system properties from which to retrieve credentials and therefore looks for {{http.proxyHost}}, {{http.proxyPort}}, {{http.proxyUser}} and {{http.proxyPassword}}.

(a workaround is thus to specify all eight parameters, with both the http. and https. prefixes but that doesn't seem like a good solution)

I'll make a pull request with a suggested fix.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org