mirror of https://github.com/apache/nifi.git
NIFI-2466: Added unit test to verify changes; fixed validation
This commit is contained in:
parent
aa4d4189c4
commit
c5d521a1df
|
@ -233,6 +233,9 @@ public class StandardSSLContextService extends AbstractControllerService impleme
|
|||
private void verifySslConfig(final ValidationContext validationContext) throws ProcessException {
|
||||
final String protocol = validationContext.getProperty(SSL_ALGORITHM).getValue();
|
||||
try {
|
||||
final PropertyValue keyPasswdProp = configContext.getProperty(KEY_PASSWORD);
|
||||
final char[] keyPassword = keyPasswdProp.isSet() ? keyPasswdProp.getValue().toCharArray() : null;
|
||||
|
||||
final String keystoreFile = validationContext.getProperty(KEYSTORE).getValue();
|
||||
if (keystoreFile == null) {
|
||||
SslContextFactory.createTrustSslContext(
|
||||
|
@ -247,6 +250,7 @@ public class StandardSSLContextService extends AbstractControllerService impleme
|
|||
SslContextFactory.createSslContext(
|
||||
validationContext.getProperty(KEYSTORE).getValue(),
|
||||
validationContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(),
|
||||
keyPassword,
|
||||
validationContext.getProperty(KEYSTORE_TYPE).getValue(),
|
||||
protocol);
|
||||
return;
|
||||
|
@ -255,6 +259,7 @@ public class StandardSSLContextService extends AbstractControllerService impleme
|
|||
SslContextFactory.createSslContext(
|
||||
validationContext.getProperty(KEYSTORE).getValue(),
|
||||
validationContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(),
|
||||
keyPassword,
|
||||
validationContext.getProperty(KEYSTORE_TYPE).getValue(),
|
||||
validationContext.getProperty(TRUSTSTORE).getValue(),
|
||||
validationContext.getProperty(TRUSTSTORE_PASSWORD).getValue().toCharArray(),
|
||||
|
|
|
@ -109,7 +109,7 @@ public class SSLContextServiceTest {
|
|||
runner.assertValid(service);
|
||||
service = (SSLContextService) runner.getProcessContext().getControllerServiceLookup().getControllerService("test-good1");
|
||||
Assert.assertNotNull(service);
|
||||
SSLContextService sslService = (SSLContextService) service;
|
||||
SSLContextService sslService = service;
|
||||
sslService.createSSLContext(ClientAuth.REQUIRED);
|
||||
sslService.createSSLContext(ClientAuth.WANT);
|
||||
sslService.createSSLContext(ClientAuth.NONE);
|
||||
|
@ -160,4 +160,46 @@ public class SSLContextServiceTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDifferentKeyPassword() {
|
||||
try {
|
||||
final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class);
|
||||
final SSLContextService service = new StandardSSLContextService();
|
||||
final Map<String, String> properties = new HashMap<String, String>();
|
||||
properties.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/diffpass-ks.jks");
|
||||
properties.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "storepassword");
|
||||
properties.put(StandardSSLContextService.KEY_PASSWORD.getName(), "keypassword");
|
||||
properties.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
|
||||
runner.addControllerService("test-diff-keys", service, properties);
|
||||
runner.enableControllerService(service);
|
||||
|
||||
runner.setProperty("SSL Context Svc ID", "test-diff-keys");
|
||||
runner.assertValid();
|
||||
Assert.assertNotNull(service);
|
||||
Assert.assertTrue(service instanceof StandardSSLContextService);
|
||||
SSLContextService sslService = service;
|
||||
sslService.createSSLContext(ClientAuth.NONE);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
Assert.fail("Should not have thrown a exception " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDifferentKeyPasswordWithoutSpecifyingPassword() {
|
||||
try {
|
||||
final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class);
|
||||
final SSLContextService service = new StandardSSLContextService();
|
||||
final Map<String, String> properties = new HashMap<String, String>();
|
||||
properties.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/diffpass-ks.jks");
|
||||
properties.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "storepassword");
|
||||
properties.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
|
||||
runner.addControllerService("test-diff-keys", service, properties);
|
||||
|
||||
runner.assertNotValid(service);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
Assert.fail("Should not have thrown a exception " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue