Re: Proxy authentication + Basic authentication on the Client instance

2013-12-23 Thread Oleg Kalnichevski
On Sun, 2013-12-22 at 20:55 -1000, Arul Dhesiaseelan wrote:
 Hi,
 
 I am using a proxy to connect to a web service. Both proxy and web service
 are secured with different set of credentials. I am trying to perform a GET
 request using Apache HttpClient 4.3.1.
 
 URI proxyUri = URI.create(http://localhost:9000;);
 URI targetUri = URI.create(http://localhost:8080;);
 final HttpHost proxyHost = new HttpHost(proxyUri.getHost(),
 proxyUri.getPort(), proxyUri.getScheme());
 final HttpHost targetHost = new HttpHost(targetUri.getHost(),
 targetUri.getPort(), targetUri.getScheme());
 CredentialsProvider proxyCredentials = new BasicCredentialsProvider();
 proxyCredentials.setCredentials(
 new AuthScope(proxyUri.getHost(), proxyUri.getPort()),
 new UsernamePasswordCredentials(joe, secret)
 );
 
 CredentialsProvider serviceCredentials = new BasicCredentialsProvider();
 serviceCredentials.setCredentials(
 new AuthScope(targetHost.getHostName(), targetHost.getPort()),
 new UsernamePasswordCredentials(user, password));
 
 CloseableHttpClient httpclient = HttpClients.custom()
 .setDefaultCredentialsProvider(serviceCredentials).build();// this
 sets only service creds
 
 
 It looks like you can set only one set of credentials at any time. I could
 not set both on the client. I tried something like this, but it would not
 allow me to set proxy credentials on the request config.
 
 RequestConfig config =
 RequestConfig.custom().setProxy(proxyHost).build();
 HttpGet httpGet = new HttpGet(/);
 httpGet.setConfig(config);
 System.out.println(executing request to  + targetHost +  via  +
 proxyHost);
 
 CloseableHttpResponse response = httpclient.execute(targetHost,
 httpGet);
 
 How can I use both of these credentials on the client? Is this supported?
 
 Thanks!
 Arul

Try this
---
URI proxyUri = URI.create(http://localhost:9000;);
URI targetUri = URI.create(http://localhost:8080;);
HttpHost proxyHost = new HttpHost(proxyUri.getHost(),
proxyUri.getPort(), proxyUri.getScheme());
HttpHost targetHost = new HttpHost(targetUri.getHost(),
targetUri.getPort(), targetUri.getScheme());
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(proxyUri.getHost(), proxyUri.getPort()),
new UsernamePasswordCredentials(joe, secret)
);
credsProvider.setCredentials(
new AuthScope(targetHost.getHostName(), targetHost.getPort()),
new UsernamePasswordCredentials(user, password));
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider).build();
---

Oleg



-
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org



Re: Proxy authentication + Basic authentication on the Client instance

2013-12-23 Thread Arul Dhesiaseelan
Awesome, that did the trick.

Thanks Oleg.


On Sun, Dec 22, 2013 at 10:42 PM, Oleg Kalnichevski ol...@apache.orgwrote:

 On Sun, 2013-12-22 at 20:55 -1000, Arul Dhesiaseelan wrote:
  Hi,
 
  I am using a proxy to connect to a web service. Both proxy and web
 service
  are secured with different set of credentials. I am trying to perform a
 GET
  request using Apache HttpClient 4.3.1.
 
  URI proxyUri = URI.create(http://localhost:9000;);
  URI targetUri = URI.create(http://localhost:8080;);
  final HttpHost proxyHost = new HttpHost(proxyUri.getHost(),
  proxyUri.getPort(), proxyUri.getScheme());
  final HttpHost targetHost = new HttpHost(targetUri.getHost(),
  targetUri.getPort(), targetUri.getScheme());
  CredentialsProvider proxyCredentials = new
 BasicCredentialsProvider();
  proxyCredentials.setCredentials(
  new AuthScope(proxyUri.getHost(), proxyUri.getPort()),
  new UsernamePasswordCredentials(joe, secret)
  );
 
  CredentialsProvider serviceCredentials = new
 BasicCredentialsProvider();
  serviceCredentials.setCredentials(
  new AuthScope(targetHost.getHostName(), targetHost.getPort()),
  new UsernamePasswordCredentials(user, password));
 
  CloseableHttpClient httpclient = HttpClients.custom()
  .setDefaultCredentialsProvider(serviceCredentials).build();//
 this
  sets only service creds
 
 
  It looks like you can set only one set of credentials at any time. I
 could
  not set both on the client. I tried something like this, but it would not
  allow me to set proxy credentials on the request config.
 
  RequestConfig config =
  RequestConfig.custom().setProxy(proxyHost).build();
  HttpGet httpGet = new HttpGet(/);
  httpGet.setConfig(config);
  System.out.println(executing request to  + targetHost +  via  +
  proxyHost);
 
  CloseableHttpResponse response = httpclient.execute(targetHost,
  httpGet);
 
  How can I use both of these credentials on the client? Is this supported?
 
  Thanks!
  Arul

 Try this
 ---
 URI proxyUri = URI.create(http://localhost:9000;);
 URI targetUri = URI.create(http://localhost:8080;);
 HttpHost proxyHost = new HttpHost(proxyUri.getHost(),
 proxyUri.getPort(), proxyUri.getScheme());
 HttpHost targetHost = new HttpHost(targetUri.getHost(),
 targetUri.getPort(), targetUri.getScheme());
 CredentialsProvider credsProvider = new BasicCredentialsProvider();
 credsProvider.setCredentials(
 new AuthScope(proxyUri.getHost(), proxyUri.getPort()),
 new UsernamePasswordCredentials(joe, secret)
 );
 credsProvider.setCredentials(
 new AuthScope(targetHost.getHostName(), targetHost.getPort()),
 new UsernamePasswordCredentials(user, password));
 CloseableHttpClient httpclient = HttpClients.custom()
 .setDefaultCredentialsProvider(credsProvider).build();
 ---

 Oleg



 -
 To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
 For additional commands, e-mail: httpclient-users-h...@hc.apache.org




Proxy authentication + Basic authentication on the Client instance

2013-12-22 Thread Arul Dhesiaseelan
Hi,

I am using a proxy to connect to a web service. Both proxy and web service
are secured with different set of credentials. I am trying to perform a GET
request using Apache HttpClient 4.3.1.

URI proxyUri = URI.create(http://localhost:9000;);
URI targetUri = URI.create(http://localhost:8080;);
final HttpHost proxyHost = new HttpHost(proxyUri.getHost(),
proxyUri.getPort(), proxyUri.getScheme());
final HttpHost targetHost = new HttpHost(targetUri.getHost(),
targetUri.getPort(), targetUri.getScheme());
CredentialsProvider proxyCredentials = new BasicCredentialsProvider();
proxyCredentials.setCredentials(
new AuthScope(proxyUri.getHost(), proxyUri.getPort()),
new UsernamePasswordCredentials(joe, secret)
);

CredentialsProvider serviceCredentials = new BasicCredentialsProvider();
serviceCredentials.setCredentials(
new AuthScope(targetHost.getHostName(), targetHost.getPort()),
new UsernamePasswordCredentials(user, password));

CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCredentialsProvider(serviceCredentials).build();// this
sets only service creds


It looks like you can set only one set of credentials at any time. I could
not set both on the client. I tried something like this, but it would not
allow me to set proxy credentials on the request config.

RequestConfig config =
RequestConfig.custom().setProxy(proxyHost).build();
HttpGet httpGet = new HttpGet(/);
httpGet.setConfig(config);
System.out.println(executing request to  + targetHost +  via  +
proxyHost);

CloseableHttpResponse response = httpclient.execute(targetHost,
httpGet);

How can I use both of these credentials on the client? Is this supported?

Thanks!
Arul