Java Code Examples for org.apache.nifi.security.util.SslContextFactory#createTrustSslContext()
The following examples show how to use
org.apache.nifi.security.util.SslContextFactory#createTrustSslContext() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: StandardSSLContextService.java From localization_nifi with Apache License 2.0 | 5 votes |
private void verifySslConfig(final ValidationContext validationContext) throws ProcessException { final String protocol = validationContext.getProperty(SSL_ALGORITHM).getValue(); try { final PropertyValue keyPasswdProp = validationContext.getProperty(KEY_PASSWORD); final char[] keyPassword = keyPasswdProp.isSet() ? keyPasswdProp.getValue().toCharArray() : null; final String keystoreFile = validationContext.getProperty(KEYSTORE).getValue(); if (keystoreFile == null) { SslContextFactory.createTrustSslContext( validationContext.getProperty(TRUSTSTORE).getValue(), validationContext.getProperty(TRUSTSTORE_PASSWORD).getValue().toCharArray(), validationContext.getProperty(TRUSTSTORE_TYPE).getValue(), protocol); return; } final String truststoreFile = validationContext.getProperty(TRUSTSTORE).getValue(); if (truststoreFile == null) { SslContextFactory.createSslContext( validationContext.getProperty(KEYSTORE).getValue(), validationContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(), keyPassword, validationContext.getProperty(KEYSTORE_TYPE).getValue(), protocol); return; } 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(), validationContext.getProperty(TRUSTSTORE_TYPE).getValue(), org.apache.nifi.security.util.SslContextFactory.ClientAuth.REQUIRED, protocol); } catch (final Exception e) { throw new ProcessException(e); } }
Example 2
Source File: TestListenTCP.java From localization_nifi with Apache License 2.0 | 5 votes |
@Test public void testTLSClienAuthRequiredAndClientCertNotProvided() throws InitializationException, IOException, InterruptedException, UnrecoverableKeyException, CertificateException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException { runner.setProperty(ListenTCP.CLIENT_AUTH, SSLContextService.ClientAuth.REQUIRED.name()); configureProcessorSslContextService(); final List<String> messages = new ArrayList<>(); messages.add("This is message 1\n"); messages.add("This is message 2\n"); messages.add("This is message 3\n"); messages.add("This is message 4\n"); messages.add("This is message 5\n"); // Make an SSLContext that only has the trust store, this should not work since the processor has client auth REQUIRED final SSLContext clientSslContext = SslContextFactory.createTrustSslContext( "src/test/resources/localhost-ts.jks", "localtest".toCharArray(), "jks", "TLS"); try { runTCP(messages, messages.size(), clientSslContext); Assert.fail("Should have thrown exception"); } catch (Exception e) { } }
Example 3
Source File: TestListenTCP.java From localization_nifi with Apache License 2.0 | 5 votes |
@Test public void testTLSClienAuthNoneAndClientCertNotProvided() throws InitializationException, IOException, InterruptedException, UnrecoverableKeyException, CertificateException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException { runner.setProperty(ListenTCP.CLIENT_AUTH, SSLContextService.ClientAuth.NONE.name()); configureProcessorSslContextService(); final List<String> messages = new ArrayList<>(); messages.add("This is message 1\n"); messages.add("This is message 2\n"); messages.add("This is message 3\n"); messages.add("This is message 4\n"); messages.add("This is message 5\n"); // Make an SSLContext that only has the trust store, this should not work since the processor has client auth REQUIRED final SSLContext clientSslContext = SslContextFactory.createTrustSslContext( "src/test/resources/localhost-ts.jks", "localtest".toCharArray(), "jks", "TLS"); runTCP(messages, messages.size(), clientSslContext); List<MockFlowFile> mockFlowFiles = runner.getFlowFilesForRelationship(ListenTCP.REL_SUCCESS); for (int i=0; i < mockFlowFiles.size(); i++) { mockFlowFiles.get(i).assertContentEquals("This is message " + (i + 1)); } }
Example 4
Source File: HierarchicalC2IntegrationTest.java From nifi-minifi with Apache License 2.0 | 5 votes |
/** * Generates certificates with the tls-toolkit and then starts up the docker compose file */ @BeforeClass public static void initCertificates() throws Exception { resourceDirectory = Paths.get(HierarchicalC2IntegrationTest.class.getClassLoader() .getResource("docker-compose-c2-hierarchical.yml").getFile()).getParent(); certificatesDirectory = resourceDirectory.toAbsolutePath().resolve("certificates-c2-hierarchical"); authoritativeFiles = resourceDirectory.resolve("c2").resolve("hierarchical").resolve("c2-authoritative").resolve("files"); minifiEdge1Version2 = authoritativeFiles.resolve("edge1").resolve("raspi3").resolve("config.text.yml.v2"); minifiEdge2Version2 = authoritativeFiles.resolve("edge2").resolve("raspi2").resolve("config.text.yml.v2"); minifiEdge3Version2 = authoritativeFiles.resolve("edge3").resolve("raspi3").resolve("config.text.yml.v2"); if (Files.exists(minifiEdge1Version2)) { Files.delete(minifiEdge1Version2); } if (Files.exists(minifiEdge2Version2)) { Files.delete(minifiEdge2Version2); } if (Files.exists(minifiEdge3Version2)) { Files.delete(minifiEdge3Version2); } List<String> toolkitCommandLine = new ArrayList<>(Arrays.asList("-O", "-o", certificatesDirectory.toFile().getAbsolutePath(), "-S", "badKeystorePass", "-P", "badTrustPass")); for (String serverHostname : Arrays.asList("c2-authoritative", "minifi-edge1", "c2-edge2", "minifi-edge3")) { toolkitCommandLine.add("-n"); toolkitCommandLine.add(serverHostname); } Files.createDirectories(certificatesDirectory); TlsToolkitStandaloneCommandLine tlsToolkitStandaloneCommandLine = new TlsToolkitStandaloneCommandLine(); tlsToolkitStandaloneCommandLine.parse(toolkitCommandLine.toArray(new String[toolkitCommandLine.size()])); new TlsToolkitStandalone().createNifiKeystoresAndTrustStores(tlsToolkitStandaloneCommandLine.createConfig()); trustSslContext = SslContextFactory.createTrustSslContext(certificatesDirectory.resolve("c2-authoritative") .resolve("truststore.jks").toFile().getAbsolutePath(), "badTrustPass".toCharArray(), "jks", "TLS"); healthCheckSocketFactory = trustSslContext.getSocketFactory(); docker.before(); }
Example 5
Source File: LdapProvider.java From localization_nifi with Apache License 2.0 | 4 votes |
private SSLContext getConfiguredSslContext(final LoginIdentityProviderConfigurationContext configurationContext) { final String rawKeystore = configurationContext.getProperty("TLS - Keystore"); final String rawKeystorePassword = configurationContext.getProperty("TLS - Keystore Password"); final String rawKeystoreType = configurationContext.getProperty("TLS - Keystore Type"); final String rawTruststore = configurationContext.getProperty("TLS - Truststore"); final String rawTruststorePassword = configurationContext.getProperty("TLS - Truststore Password"); final String rawTruststoreType = configurationContext.getProperty("TLS - Truststore Type"); final String rawClientAuth = configurationContext.getProperty("TLS - Client Auth"); final String rawProtocol = configurationContext.getProperty("TLS - Protocol"); // create the ssl context final SSLContext sslContext; try { if (StringUtils.isBlank(rawKeystore) && StringUtils.isBlank(rawTruststore)) { sslContext = null; } else { // ensure the protocol is specified if (StringUtils.isBlank(rawProtocol)) { throw new ProviderCreationException("TLS - Protocol must be specified."); } if (StringUtils.isBlank(rawKeystore)) { sslContext = SslContextFactory.createTrustSslContext(rawTruststore, rawTruststorePassword.toCharArray(), rawTruststoreType, rawProtocol); } else if (StringUtils.isBlank(rawTruststore)) { sslContext = SslContextFactory.createSslContext(rawKeystore, rawKeystorePassword.toCharArray(), rawKeystoreType, rawProtocol); } else { // determine the client auth if specified final ClientAuth clientAuth; if (StringUtils.isBlank(rawClientAuth)) { clientAuth = ClientAuth.NONE; } else { try { clientAuth = ClientAuth.valueOf(rawClientAuth); } catch (final IllegalArgumentException iae) { throw new ProviderCreationException(String.format("Unrecognized client auth '%s'. Possible values are [%s]", rawClientAuth, StringUtils.join(ClientAuth.values(), ", "))); } } sslContext = SslContextFactory.createSslContext(rawKeystore, rawKeystorePassword.toCharArray(), rawKeystoreType, rawTruststore, rawTruststorePassword.toCharArray(), rawTruststoreType, clientAuth, rawProtocol); } } } catch (final KeyStoreException | NoSuchAlgorithmException | CertificateException | UnrecoverableKeyException | KeyManagementException | IOException e) { throw new ProviderCreationException(e.getMessage(), e); } return sslContext; }
Example 6
Source File: StandardSSLContextService.java From localization_nifi with Apache License 2.0 | 4 votes |
@Override public SSLContext createSSLContext(final ClientAuth clientAuth) throws ProcessException { final String protocol = configContext.getProperty(SSL_ALGORITHM).getValue(); try { final PropertyValue keyPasswdProp = configContext.getProperty(KEY_PASSWORD); final char[] keyPassword = keyPasswdProp.isSet() ? keyPasswdProp.getValue().toCharArray() : null; final String keystoreFile = configContext.getProperty(KEYSTORE).getValue(); if (keystoreFile == null) { // If keystore not specified, create SSL Context based only on trust store. return SslContextFactory.createTrustSslContext( configContext.getProperty(TRUSTSTORE).getValue(), configContext.getProperty(TRUSTSTORE_PASSWORD).getValue().toCharArray(), configContext.getProperty(TRUSTSTORE_TYPE).getValue(), protocol); } final String truststoreFile = configContext.getProperty(TRUSTSTORE).getValue(); if (truststoreFile == null) { // If truststore not specified, create SSL Context based only on key store. return SslContextFactory.createSslContext( configContext.getProperty(KEYSTORE).getValue(), configContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(), keyPassword, configContext.getProperty(KEYSTORE_TYPE).getValue(), protocol); } return SslContextFactory.createSslContext( configContext.getProperty(KEYSTORE).getValue(), configContext.getProperty(KEYSTORE_PASSWORD).getValue().toCharArray(), keyPassword, configContext.getProperty(KEYSTORE_TYPE).getValue(), configContext.getProperty(TRUSTSTORE).getValue(), configContext.getProperty(TRUSTSTORE_PASSWORD).getValue().toCharArray(), configContext.getProperty(TRUSTSTORE_TYPE).getValue(), org.apache.nifi.security.util.SslContextFactory.ClientAuth.valueOf(clientAuth.name()), protocol); } catch (final Exception e) { throw new ProcessException(e); } }
Example 7
Source File: ITAccessTokenEndpoint.java From localization_nifi with Apache License 2.0 | 4 votes |
private static SSLContext createTrustContext(final NiFiProperties props) throws Exception { return SslContextFactory.createTrustSslContext(props.getProperty(NiFiProperties.SECURITY_TRUSTSTORE), props.getProperty(NiFiProperties.SECURITY_TRUSTSTORE_PASSWD).toCharArray(), props.getProperty(NiFiProperties.SECURITY_TRUSTSTORE_TYPE), "TLS"); }