Hi, Thanks Mark for your help, it's now ok with :
new AuthScope(proxy, AuthScope.ANY_REALM, AuthSchemes.DIGEST) In my mind, the default constructor was with AuthSchemes.ALL and so should work with DIGEST. But with the specified DIGEST value, it's ok, thank you very much. Stéphane 2016-04-12 17:52 GMT+02:00 Mark A. Claassen <mclaas...@ocie.net>: > I have been working with Proxies as well. I am no expert, but I think > your AuthScope is insufficient. > > I have a different situation that you do. I override CredentialsProvider, > which I don't think you need to do, but it does reveal some things when you > do it that way. > > When an AuthScope comes into getCredentials(AuthScope a); it has a > "scheme" associated with it. That scheme is matched against other schemes, > such as AuthSchemes.DIGEST. You may be able to just change your code to > create your AuthScope creation to something like: > > new AuthScope(new HttpHost("80.1.2.3", 3128), AuthScope.ANY_REALM, > AuthScheme.DIGEST) > > If not, you can create your own CredentialsProvider. In the > getCredentials() method, you can verify that it is using a DIGEST scheme > and just return the credentials directly, or potentially put them in a > private instance of BasicCredentialsProvider, using the passed in AuthScope > as the parameter to setCredentials(). > > public Credentials getCredentials(AuthScope authscope) { > Credentials rval = delegate.getCredentials(authscope); > if (rval == null && > AuthSchemes.DIGEST.equalsIgnoreCase(scheme)) } > ... > delegate.setProvider(authscope,rval) > } > } > > Hope this helps, > Mark > > > Disclaimer: > The opinions provided herein do not necessarily state or reflect those of > Donnell Systems, Inc.(DSI). DSI makes no warranty for and assumes no legal > liability or responsibility for the posting. > > -----Original Message----- > From: Mop Sophia [mailto:mopsop...@gmail.com] > Sent: Monday, April 11, 2016 12:19 PM > To: httpclient-users@hc.apache.org > Subject: Proxy with digest authentication > > Hi, > > I try to do a request using a proxy with digest authentication but the > authentication fails, here is the code : > > // Proxy credentials > CredentialsProvider credsProvider = new BasicCredentialsProvider(); > credsProvider.setCredentials(new AuthScope("80.1.2.3", 3128), > new UsernamePasswordCredentials("proxy_user", "proxy_pass")); > HttpHost proxy = new HttpHost("80.1.2.3", 3128); > > CloseableHttpClient httpclient = HttpClients.custom() > .setSSLSocketFactory(sslsf) > .setDefaultCredentialsProvider(credsProvider) > .setProxy(proxy) > .build(); > > > HttpGet httpget = new HttpGet("https://myhost.com:8443"); > > HttpClientContext context = HttpClientContext.create(); > > CloseableHttpResponse resp = httpclient.execute(httpget, context); > > Log.d("TST", String.valueOf(resp.getStatusLine())); > Log.d("TST", EntityUtils.toString(resp.getEntity())); > > AuthState proxyAuthState = context.getProxyAuthState(); Log.d("TST", > "Proxy auth state: " + proxyAuthState.getState()); Log.d("TST", "Proxy auth > scheme: " + proxyAuthState.getAuthScheme()); Log.d("TST", "Proxy auth > credentials: " + proxyAuthState.getCredentials()); AuthState > targetAuthState = context.getTargetAuthState(); Log.d("TST", "Target auth > state: " + targetAuthState.getState()); Log.d("TST", "Target auth scheme: " > + targetAuthState.getAuthScheme()); Log.d("TST", "Target auth credentials: > " + targetAuthState.getCredentials()); > > > > > Any idea, please ? > > Thanks, > > Stéphane >