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
