Repository: nifi
Updated Branches:
  refs/heads/master 2834fa4ce -> 6bf6a92ab


NIFI-5220: add validation for host and password, and tests

This closes #2727.

Signed-off-by: Koji Kawamura <[email protected]>


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

Branch: refs/heads/master
Commit: 6bf6a92abd1f90ea61154dc84fb18a600e4cebfa
Parents: 2834fa4
Author: Otto Fowler <[email protected]>
Authored: Mon May 21 12:16:17 2018 -0400
Committer: Koji Kawamura <[email protected]>
Committed: Tue May 22 09:28:30 2018 +0900

----------------------------------------------------------------------
 .../processors/aws/AbstractAWSProcessor.java    | 17 +++++++--
 .../provider/service/AWSProcessorProxyTest.java | 37 ++++++++++++++++++++
 2 files changed, 51 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/6bf6a92a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
 
b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
index f0be384..bc8486d 100644
--- 
a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
+++ 
b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
@@ -189,9 +189,20 @@ public abstract class AbstractAWSProcessor<ClientType 
extends AmazonWebServiceCl
         }
 
         final boolean proxyHostSet = 
validationContext.getProperty(PROXY_HOST).isSet();
-        final boolean proxyHostPortSet = 
validationContext.getProperty(PROXY_HOST_PORT).isSet();
-        if ( ((!proxyHostSet) && proxyHostPortSet) || (proxyHostSet && 
(!proxyHostPortSet)) ) {
-            problems.add(new ValidationResult.Builder().input("Proxy Host 
Port").valid(false).explanation("Both proxy host and port must be 
set").build());
+        final boolean proxyPortSet = 
validationContext.getProperty(PROXY_HOST_PORT).isSet();
+
+        if ((proxyHostSet && !proxyPortSet) || (!proxyHostSet && 
proxyPortSet)) {
+            problems.add(new ValidationResult.Builder().subject("Proxy Host 
and Port").valid(false).explanation("If Proxy Host or Proxy Port is set, both 
must be set").build());
+        }
+
+        final boolean proxyUserSet = 
validationContext.getProperty(PROXY_USERNAME).isSet();
+        final boolean proxyPwdSet = 
validationContext.getProperty(PROXY_PASSWORD).isSet();
+
+        if ((proxyUserSet && !proxyPwdSet) || (!proxyUserSet && proxyPwdSet)) {
+            problems.add(new ValidationResult.Builder().subject("Proxy User 
and Password").valid(false).explanation("If Proxy Username or Proxy Password is 
set, both must be set").build());
+        }
+        if (proxyUserSet && !proxyHostSet) {
+            problems.add(new 
ValidationResult.Builder().subject("Proxy").valid(false).explanation("If Proxy 
username is set, proxy host must be set").build());
         }
 
         ProxyConfiguration.validateProxySpec(validationContext, problems, 
PROXY_SPECS);

http://git-wip-us.apache.org/repos/asf/nifi/blob/6bf6a92a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSProcessorProxyTest.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSProcessorProxyTest.java
 
b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSProcessorProxyTest.java
index f77ed18..ccc95db 100644
--- 
a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSProcessorProxyTest.java
+++ 
b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSProcessorProxyTest.java
@@ -67,4 +67,41 @@ public class AWSProcessorProxyTest {
         runner.setProperty(AbstractAWSProcessor.PROXY_HOST, "proxyHost");
         runner.assertValid();
     }
+
+    @SuppressWarnings("deprecation")
+    @Test
+    public void testProxyUserNoPasswordInValid() throws Throwable {
+        runner.setProperty(AbstractAWSProcessor.PROXY_USERNAME, "foo");
+        runner.assertNotValid();
+    }
+
+    @SuppressWarnings("deprecation")
+    @Test
+    public void testProxyNoUserPasswordInValid() throws Throwable {
+        runner.setProperty(AbstractAWSProcessor.PROXY_PASSWORD, "foo");
+        runner.assertNotValid();
+    }
+
+    @SuppressWarnings("deprecation")
+    @Test
+    public void testProxyUserPasswordNoHostInValid() throws Throwable {
+        runner.setProperty(AbstractAWSProcessor.PROXY_USERNAME, "foo");
+        runner.setProperty(AbstractAWSProcessor.PROXY_PASSWORD, "foo");
+        runner.assertNotValid();
+    }
+
+    @SuppressWarnings("deprecation")
+    @Test
+    public void testProxyUserPasswordHostValid() throws Throwable {
+        runner.setProperty(AbstractAWSProcessor.PROXY_HOST_PORT, "1");
+        runner.setProperty(AbstractAWSProcessor.PROXY_HOST, "proxyHost");
+        runner.setProperty(AbstractAWSProcessor.PROXY_USERNAME, "foo");
+        runner.setProperty(AbstractAWSProcessor.PROXY_PASSWORD, "foo");
+        runner.assertValid();
+    }
+
+
+
+
+
 }
\ No newline at end of file

Reply via email to