Skip to content

Commit 6bf6a92

Browse files
ottobackwardsijokarumawak
authored andcommitted
NIFI-5220: add validation for host and password, and tests
This closes #2727. Signed-off-by: Koji Kawamura <ijokarumawak@apache.org>
1 parent 2834fa4 commit 6bf6a92

2 files changed

Lines changed: 51 additions & 3 deletions

File tree

nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,20 @@ protected Collection<ValidationResult> customValidate(final ValidationContext va
189189
}
190190

191191
final boolean proxyHostSet = validationContext.getProperty(PROXY_HOST).isSet();
192-
final boolean proxyHostPortSet = validationContext.getProperty(PROXY_HOST_PORT).isSet();
193-
if ( ((!proxyHostSet) && proxyHostPortSet) || (proxyHostSet && (!proxyHostPortSet)) ) {
194-
problems.add(new ValidationResult.Builder().input("Proxy Host Port").valid(false).explanation("Both proxy host and port must be set").build());
192+
final boolean proxyPortSet = validationContext.getProperty(PROXY_HOST_PORT).isSet();
193+
194+
if ((proxyHostSet && !proxyPortSet) || (!proxyHostSet && proxyPortSet)) {
195+
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());
196+
}
197+
198+
final boolean proxyUserSet = validationContext.getProperty(PROXY_USERNAME).isSet();
199+
final boolean proxyPwdSet = validationContext.getProperty(PROXY_PASSWORD).isSet();
200+
201+
if ((proxyUserSet && !proxyPwdSet) || (!proxyUserSet && proxyPwdSet)) {
202+
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());
203+
}
204+
if (proxyUserSet && !proxyHostSet) {
205+
problems.add(new ValidationResult.Builder().subject("Proxy").valid(false).explanation("If Proxy username is set, proxy host must be set").build());
195206
}
196207

197208
ProxyConfiguration.validateProxySpec(validationContext, problems, PROXY_SPECS);

nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/credentials/provider/service/AWSProcessorProxyTest.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,41 @@ public void testProxyHostAndPortValid() throws Throwable {
6767
runner.setProperty(AbstractAWSProcessor.PROXY_HOST, "proxyHost");
6868
runner.assertValid();
6969
}
70+
71+
@SuppressWarnings("deprecation")
72+
@Test
73+
public void testProxyUserNoPasswordInValid() throws Throwable {
74+
runner.setProperty(AbstractAWSProcessor.PROXY_USERNAME, "foo");
75+
runner.assertNotValid();
76+
}
77+
78+
@SuppressWarnings("deprecation")
79+
@Test
80+
public void testProxyNoUserPasswordInValid() throws Throwable {
81+
runner.setProperty(AbstractAWSProcessor.PROXY_PASSWORD, "foo");
82+
runner.assertNotValid();
83+
}
84+
85+
@SuppressWarnings("deprecation")
86+
@Test
87+
public void testProxyUserPasswordNoHostInValid() throws Throwable {
88+
runner.setProperty(AbstractAWSProcessor.PROXY_USERNAME, "foo");
89+
runner.setProperty(AbstractAWSProcessor.PROXY_PASSWORD, "foo");
90+
runner.assertNotValid();
91+
}
92+
93+
@SuppressWarnings("deprecation")
94+
@Test
95+
public void testProxyUserPasswordHostValid() throws Throwable {
96+
runner.setProperty(AbstractAWSProcessor.PROXY_HOST_PORT, "1");
97+
runner.setProperty(AbstractAWSProcessor.PROXY_HOST, "proxyHost");
98+
runner.setProperty(AbstractAWSProcessor.PROXY_USERNAME, "foo");
99+
runner.setProperty(AbstractAWSProcessor.PROXY_PASSWORD, "foo");
100+
runner.assertValid();
101+
}
102+
103+
104+
105+
106+
70107
}

0 commit comments

Comments
 (0)