You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gobblin.apache.org by hu...@apache.org on 2019/06/25 17:55:40 UTC

[incubator-gobblin] branch master updated: [GOBBLIN-813] Make SFDC connector support encrypted Salesforce client id and client secret

This is an automated email from the ASF dual-hosted git repository.

hutran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-gobblin.git


The following commit(s) were added to refs/heads/master by this push:
     new a1893ba  [GOBBLIN-813] Make SFDC connector support encrypted Salesforce client id and client secret
a1893ba is described below

commit a1893baec65fbb8f123467fb0359384accc4a66b
Author: Haoji Wu <ho...@linkedin.com>
AuthorDate: Tue Jun 25 10:55:33 2019 -0700

    [GOBBLIN-813] Make SFDC connector support encrypted Salesforce client id and client secret
    
    When reading client id and client secret from
    state properties,
    SalesforceConnector will use
    PasswordManager.readPassword() to decrypt
    it.
    This feature is controlled by
    source.conn.decrypt.client.id.secret and default
    is disabled
    
    Closes #2677 from haojiwu/support_encrypted_salesf
    orce_client_id_secret
---
 .../java/org/apache/gobblin/configuration/ConfigurationKeys.java     | 1 +
 .../main/java/org/apache/gobblin/salesforce/SalesforceConnector.java | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java b/gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java
index 8744c0d..c438e77 100644
--- a/gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java
+++ b/gobblin-api/src/main/java/org/apache/gobblin/configuration/ConfigurationKeys.java
@@ -597,6 +597,7 @@ public class ConfigurationKeys {
   public static final int SOURCE_CONN_DEFAULT_PORT = 22;
   public static final String SOURCE_CONN_SID = SOURCE_CONN_PREFIX + "sid";
   public static final String SOURCE_CONN_REFRESH_TOKEN = SOURCE_CONN_PREFIX + "refresh.token";
+  public static final String SOURCE_CONN_DECRYPT_CLIENT_SECRET = SOURCE_CONN_PREFIX + "decrypt.client.id.secret";
 
 
   /**
diff --git a/gobblin-salesforce/src/main/java/org/apache/gobblin/salesforce/SalesforceConnector.java b/gobblin-salesforce/src/main/java/org/apache/gobblin/salesforce/SalesforceConnector.java
index 6ba7965..7683e30 100644
--- a/gobblin-salesforce/src/main/java/org/apache/gobblin/salesforce/SalesforceConnector.java
+++ b/gobblin-salesforce/src/main/java/org/apache/gobblin/salesforce/SalesforceConnector.java
@@ -66,6 +66,11 @@ public class SalesforceConnector extends RestApiConnector {
     log.debug("Authenticating salesforce");
     String clientId = this.state.getProp(ConfigurationKeys.SOURCE_CONN_CLIENT_ID);
     String clientSecret = this.state.getProp(ConfigurationKeys.SOURCE_CONN_CLIENT_SECRET);
+    if (this.state.getPropAsBoolean(ConfigurationKeys.SOURCE_CONN_DECRYPT_CLIENT_SECRET, false)) {
+      PasswordManager passwordManager = PasswordManager.getInstance(this.state);
+      clientId = passwordManager.readPassword(clientId);
+      clientSecret = passwordManager.readPassword(clientSecret);
+    }
     String host = this.state.getProp(ConfigurationKeys.SOURCE_CONN_HOST_NAME);
 
     List<NameValuePair> formParams = Lists.newArrayList();