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