Github user ijokarumawak commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2943#discussion_r214253235
  
    --- Diff: 
nifi-nar-bundles/nifi-gcp-bundle/nifi-gcp-processors/src/main/java/org/apache/nifi/processors/gcp/credentials/factory/strategies/AbstractServiceAccountCredentialsStrategy.java
 ---
    @@ -36,7 +43,24 @@ public AbstractServiceAccountCredentialsStrategy(String 
name, PropertyDescriptor
     
         @Override
         public GoogleCredentials getGoogleCredentials(Map<PropertyDescriptor, 
String> properties) throws IOException {
    -        return 
GoogleCredentials.fromStream(getServiceAccountJson(properties));
    +        final String proxyHost = 
properties.get(CredentialPropertyDescriptors.PROXY_HOST);
    +        final String proxyPortString = 
properties.get(CredentialPropertyDescriptors.PROXY_PORT);
    +        final Integer proxyPort = (proxyPortString != null && 
proxyPortString.matches("-?\\d+")) ?
    +                Integer.parseInt(proxyPortString) : 0;
    +
    +        if (!StringUtils.isBlank(proxyHost) && proxyPort > 0) {
    +            return 
GoogleCredentials.fromStream(getServiceAccountJson(properties),
    +                    new HttpTransportFactory() {
    +                        @Override
    +                        public HttpTransport create() {
    +                            return new NetHttpTransport.Builder()
    +                                    .setProxy(new Proxy(Proxy.Type.HTTP, 
new InetSocketAddress(proxyHost, proxyPort)))
    +                                    .build();
    +                        }
    +                    });
    +        } else {
    +            return 
GoogleCredentials.fromStream(getServiceAccountJson(properties));
    +        }
    --- End diff --
    
    I'd implement these proxy related code at higher abstraction layer. Will 
update it at the new PR.


---

Reply via email to