diff --git a/pom.xml b/pom.xml
index 76816a9..f20320e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
HTTP Plugins
io.cdap
http-plugins
- 1.5.1
+ 1.5.2-SNAPSHOT
diff --git a/src/main/java/io/cdap/plugin/http/common/http/OAuthUtil.java b/src/main/java/io/cdap/plugin/http/common/http/OAuthUtil.java
index 7f06aa8..a388c6d 100644
--- a/src/main/java/io/cdap/plugin/http/common/http/OAuthUtil.java
+++ b/src/main/java/io/cdap/plugin/http/common/http/OAuthUtil.java
@@ -24,11 +24,17 @@
import io.cdap.plugin.http.common.OAuth2GrantType;
import io.cdap.plugin.http.common.pagination.page.JSONUtil;
import io.cdap.plugin.http.source.common.BaseHttpSourceConfig;
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicNameValuePair;
@@ -83,14 +89,26 @@ public static AccessToken getAccessToken(BaseHttpConfig config) throws IOExcepti
// get accessToken from service account
return OAuthUtil.getAccessTokenByServiceAccount(config);
case OAUTH2:
+ HttpClientBuilder httpClientBuilder = HttpClients.custom();
+
if (config instanceof BaseHttpSourceConfig) {
- try (CloseableHttpClient client = HttpClients.custom()
- .setSSLSocketFactory(new SSLConnectionSocketFactoryCreator((BaseHttpSourceConfig) config).create())
- .build()) {
- return getAccessToken(client, config);
+ httpClientBuilder.setSSLSocketFactory(
+ new SSLConnectionSocketFactoryCreator((BaseHttpSourceConfig) config).create()
+ );
+ }
+ // Apply Proxy settings if they exist
+ if (!Strings.isNullOrEmpty(config.getProxyUrl())) {
+ HttpHost proxyHost = HttpHost.create(config.getProxyUrl());
+
+ if (!Strings.isNullOrEmpty(config.getProxyUsername()) && !Strings.isNullOrEmpty(config.getProxyPassword())) {
+ CredentialsProvider credsProvider = new BasicCredentialsProvider();
+ credsProvider.setCredentials(new AuthScope(proxyHost),
+ new UsernamePasswordCredentials(config.getProxyUsername(), config.getProxyPassword()));
+ httpClientBuilder.setDefaultCredentialsProvider(credsProvider);
}
+ httpClientBuilder.setProxy(proxyHost);
}
- try (CloseableHttpClient client = HttpClients.createDefault()) {
+ try (CloseableHttpClient client = httpClientBuilder.build()) {
return getAccessToken(client, config);
}
}