You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2015/07/16 16:47:26 UTC

[33/50] [abbrv] incubator-nifi git commit: initial proxy server commit

initial proxy server commit


Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/159615bb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/159615bb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/159615bb

Branch: refs/heads/master
Commit: 159615bb8e6ca6e48a8418e9059874cdd4b4eee1
Parents: 74b4800
Author: Andrew Hulbert <an...@ccri.com>
Authored: Fri Jun 5 23:10:16 2015 -0400
Committer: Mark Payne <ma...@hotmail.com>
Committed: Fri Jul 3 12:48:44 2015 -0400

----------------------------------------------------------------------
 .../nifi/processors/standard/GetHTTP.java       | 30 ++++++++++++++++
 .../nifi/processors/standard/PostHTTP.java      | 36 +++++++++++++++++---
 2 files changed, 61 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/159615bb/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
index 0001bb3..6e9acdd 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
@@ -50,6 +50,7 @@ import java.util.regex.Pattern;
 import javax.net.ssl.SSLContext;
 
 import org.apache.http.Header;
+import org.apache.http.HttpHost;
 import org.apache.http.HttpResponse;
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.UsernamePasswordCredentials;
@@ -171,6 +172,18 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             .required(false)
             .identifiesControllerService(SSLContextService.class)
             .build();
+    public static final PropertyDescriptor PROXY_HOST = new PropertyDescriptor.Builder()
+            .name("Proxy Host")
+            .description("The fully qualified hostname or IP address of the proxy server")
+            .required(false)
+            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .build();
+    public static final PropertyDescriptor PROXY_PORT = new PropertyDescriptor.Builder()
+            .name("Proxy Port")
+            .description("The port of the proxy server")
+            .required(false)
+            .addValidator(StandardValidators.PORT_VALIDATOR)
+            .build();
 
     public static final Relationship REL_SUCCESS = new Relationship.Builder()
             .name("success")
@@ -222,6 +235,8 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
         properties.add(USER_AGENT);
         properties.add(ACCEPT_CONTENT_TYPE);
         properties.add(FOLLOW_REDIRECTS);
+        properties.add(PROXY_HOST);
+        properties.add(PROXY_PORT);
         this.properties = Collections.unmodifiableList(properties);
 
         // load etag and lastModified from file
@@ -276,6 +291,14 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
                     .build());
         }
 
+        if (context.getProperty(PROXY_HOST).isSet() && !context.getProperty(PROXY_PORT).isSet()) {
+            results.add(new ValidationResult.Builder()
+                    .explanation("Proxy Host was set but no Proxy Port was specified")
+                    .valid(false)
+                    .subject("Proxy server configuration")
+                    .build());
+        }
+
         return results;
     }
 
@@ -378,6 +401,13 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
                 clientBuilder.setDefaultCredentialsProvider(credentialsProvider);
             }
 
+            // Set the proxy if specified
+            if (context.getProperty(PROXY_HOST).isSet() && context.getProperty(PROXY_PORT).isSet()) {
+                final String host = context.getProperty(PROXY_HOST).getValue();
+                final int port = context.getProperty(PROXY_PORT).asInteger();
+                clientBuilder.setProxy(new HttpHost(host, port));
+            }
+
             // create the http client
             final HttpClient client = clientBuilder.build();
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/159615bb/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
index 9509790..31b5698 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
@@ -49,10 +49,7 @@ import javax.net.ssl.SSLSession;
 import javax.security.cert.X509Certificate;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.http.Header;
-import org.apache.http.HttpException;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpResponseInterceptor;
+import org.apache.http.*;
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.UsernamePasswordCredentials;
 import org.apache.http.client.CredentialsProvider;
@@ -225,13 +222,24 @@ public class PostHTTP extends AbstractProcessor {
             .allowableValues("true", "false")
             .defaultValue("true")
             .build();
-
     public static final PropertyDescriptor SSL_CONTEXT_SERVICE = new PropertyDescriptor.Builder()
             .name("SSL Context Service")
             .description("The Controller Service to use in order to obtain an SSL Context")
             .required(false)
             .identifiesControllerService(SSLContextService.class)
             .build();
+    public static final PropertyDescriptor PROXY_HOST = new PropertyDescriptor.Builder()
+            .name("Proxy Host")
+            .description("The fully qualified hostname or IP address of the proxy server")
+            .required(false)
+            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .build();
+    public static final PropertyDescriptor PROXY_PORT = new PropertyDescriptor.Builder()
+            .name("Proxy Port")
+            .description("The port of the proxy server")
+            .required(false)
+            .addValidator(StandardValidators.PORT_VALIDATOR)
+            .build();
 
     public static final Relationship REL_SUCCESS = new Relationship.Builder()
             .name("success")
@@ -270,6 +278,8 @@ public class PostHTTP extends AbstractProcessor {
         properties.add(DATA_TIMEOUT);
         properties.add(ATTRIBUTES_AS_HEADERS_REGEX);
         properties.add(USER_AGENT);
+        properties.add(PROXY_HOST);
+        properties.add(PROXY_PORT);
         this.properties = Collections.unmodifiableList(properties);
     }
 
@@ -293,6 +303,14 @@ public class PostHTTP extends AbstractProcessor {
                     .valid(false).subject("SSL Context").build());
         }
 
+        if (context.getProperty(PROXY_HOST).isSet() && !context.getProperty(PROXY_PORT).isSet()) {
+            results.add(new ValidationResult.Builder()
+                    .explanation("Proxy Host was set but no Proxy Port was specified")
+                    .valid(false)
+                    .subject("Proxy server configuration")
+                    .build());
+        }
+
         return results;
     }
 
@@ -479,6 +497,14 @@ public class PostHTTP extends AbstractProcessor {
                     }
                     clientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                 }
+
+                // Set the proxy if specified
+                if (context.getProperty(PROXY_HOST).isSet() && context.getProperty(PROXY_PORT).isSet()) {
+                    final String host = context.getProperty(PROXY_HOST).getValue();
+                    final int port = context.getProperty(PROXY_PORT).asInteger();
+                    clientBuilder.setProxy(new HttpHost(host, port));
+                }
+                
                 client = clientBuilder.build();
 
                 // determine whether or not destination accepts flowfile/gzip