mirror of https://github.com/apache/nifi.git
initial proxy server commit
This commit is contained in:
parent
74b4800937
commit
159615bb8e
|
@ -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();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue