This is an automated email from the ASF dual-hosted git repository.
nsabonyi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 1f1c5df5a3 NIFI-11673 Removed Legacy TLS Configuration Versions
1f1c5df5a3 is described below
commit 1f1c5df5a370a0a502a8dbaf17bcb20a1c258dc2
Author: exceptionfactory <[email protected]>
AuthorDate: Fri Jun 9 16:58:58 2023 -0500
NIFI-11673 Removed Legacy TLS Configuration Versions
This closes #7367
Signed-off-by: Nandor Soma Abonyi <[email protected]>
---
.../notification/http/HttpNotificationService.java | 5 +-
.../http/HttpNotificationServiceTest.java | 2 +
.../nifi/security/util/TlsConfiguration.java | 77 -------------------
.../nifi/security/util/TlsConfigurationTest.java | 64 ----------------
.../security/util/StandardTlsConfiguration.java | 11 +--
.../nifi/security/util/KeyStoreUtilsTest.java | 3 +-
.../util/StandardTlsConfigurationTest.java | 16 ++--
.../org/apache/nifi/io/socket/SocketUtils.java | 33 ++------
.../org/apache/nifi/io/socket/SocketUtilsTest.java | 84 ---------------------
.../test/resources/TlsConfigurationKeystore.jks | Bin 2269 -> 0 bytes
.../test/resources/TlsConfigurationTruststore.jks | Bin 980 -> 0 bytes
.../nifi/processors/email/TestListenSMTP.java | 26 +------
.../server/ConnectionLoadBalanceServer.java | 6 +-
.../nifi/remote/SocketRemoteSiteListener.java | 6 +-
.../apache/nifi/web/util/ssl/SslContextUtils.java | 6 +-
.../ssl/StandardRestrictedSSLContextService.java | 5 +-
.../apache/nifi/ssl/StandardSSLContextService.java | 11 ++-
.../stateless/config/SslConfigurationUtil.java | 3 +-
.../cli/impl/client/nifi/NiFiClientConfig.java | 4 +-
.../TlsCertificateSigningRequestPerformer.java | 9 +--
.../server/TlsCertificateAuthorityService.java | 4 +-
.../tls/status/TlsToolkitGetStatusCommandLine.java | 3 +-
22 files changed, 53 insertions(+), 325 deletions(-)
diff --git
a/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/notification/http/HttpNotificationService.java
b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/notification/http/HttpNotificationService.java
index dcbffbb894..2ccd4bda6f 100644
---
a/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/notification/http/HttpNotificationService.java
+++
b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/notification/http/HttpNotificationService.java
@@ -152,7 +152,7 @@ public class HttpNotificationService extends
AbstractNotificationService {
supportedProperties.add(PROP_KEYSTORE_PASSWORD);
supportedProperties.add(PROP_KEYSTORE_TYPE);
supportedProperties.add(PROP_KEY_PASSWORD);
-
+ supportedProperties.add(SSL_ALGORITHM);
}
@Override
@@ -224,7 +224,8 @@ public class HttpNotificationService extends
AbstractNotificationService {
String truststorePath =
context.getProperty(HttpNotificationService.PROP_TRUSTSTORE).getValue();
String truststorePassword =
context.getProperty(HttpNotificationService.PROP_TRUSTSTORE_PASSWORD).getValue();
String truststoreType =
context.getProperty(HttpNotificationService.PROP_TRUSTSTORE_TYPE).getValue();
- return new StandardTlsConfiguration(keystorePath, keystorePassword,
keyPassword, keystoreType, truststorePath, truststorePassword, truststoreType,
TlsConfiguration.TLS_PROTOCOL);
+ String protocol =
context.getProperty(HttpNotificationService.SSL_ALGORITHM).getValue();
+ return new StandardTlsConfiguration(keystorePath, keystorePassword,
keyPassword, keystoreType, truststorePath, truststorePassword, truststoreType,
protocol);
}
@Override
diff --git
a/nifi-bootstrap/src/test/java/org/apache/nifi/bootstrap/http/HttpNotificationServiceTest.java
b/nifi-bootstrap/src/test/java/org/apache/nifi/bootstrap/http/HttpNotificationServiceTest.java
index 96575a9ece..dea74bd988 100644
---
a/nifi-bootstrap/src/test/java/org/apache/nifi/bootstrap/http/HttpNotificationServiceTest.java
+++
b/nifi-bootstrap/src/test/java/org/apache/nifi/bootstrap/http/HttpNotificationServiceTest.java
@@ -56,6 +56,7 @@ import static
org.apache.nifi.bootstrap.notification.http.HttpNotificationServic
import static
org.apache.nifi.bootstrap.notification.http.HttpNotificationService.PROP_TRUSTSTORE_TYPE;
import static
org.apache.nifi.bootstrap.notification.http.HttpNotificationService.NOTIFICATION_SUBJECT_KEY;
import static
org.apache.nifi.bootstrap.notification.http.HttpNotificationService.NOTIFICATION_TYPE_KEY;
+import static
org.apache.nifi.bootstrap.notification.http.HttpNotificationService.SSL_ALGORITHM;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -149,6 +150,7 @@ public class HttpNotificationServiceTest {
properties.put(PROP_TRUSTSTORE,
createPropertyValue(tlsConfiguration.getTruststorePath()));
properties.put(PROP_TRUSTSTORE_PASSWORD,
createPropertyValue(tlsConfiguration.getTruststorePassword()));
properties.put(PROP_TRUSTSTORE_TYPE,
createPropertyValue(tlsConfiguration.getTruststoreType().getType()));
+ properties.put(SSL_ALGORITHM,
createPropertyValue(tlsConfiguration.getProtocol()));
final HttpNotificationService service =
getHttpNotificationService(properties);
service.notify(getNotificationContext(),
NotificationType.NIFI_STARTED, SUBJECT, MESSAGE);
diff --git
a/nifi-commons/nifi-security-utils-api/src/main/java/org/apache/nifi/security/util/TlsConfiguration.java
b/nifi-commons/nifi-security-utils-api/src/main/java/org/apache/nifi/security/util/TlsConfiguration.java
index cd4d3a5c15..961b6fb936 100644
---
a/nifi-commons/nifi-security-utils-api/src/main/java/org/apache/nifi/security/util/TlsConfiguration.java
+++
b/nifi-commons/nifi-security-utils-api/src/main/java/org/apache/nifi/security/util/TlsConfiguration.java
@@ -16,29 +16,12 @@
*/
package org.apache.nifi.security.util;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
/**
* This interface serves as an immutable domain object (acting as an internal
DTO) for
* the various keystore and truststore configuration settings necessary for
building
* {@link javax.net.ssl.SSLContext}s.
*/
public interface TlsConfiguration {
- String SSL_PROTOCOL = "SSL";
- String TLS_PROTOCOL = "TLS";
-
- String TLS_1_0_PROTOCOL = "TLSv1";
- String TLS_1_1_PROTOCOL = "TLSv1.1";
- String TLS_1_2_PROTOCOL = "TLSv1.2";
- String[] LEGACY_TLS_PROTOCOL_VERSIONS = new String[]{TLS_1_0_PROTOCOL,
TLS_1_1_PROTOCOL};
-
- String JAVA_8_MAX_SUPPORTED_TLS_PROTOCOL_VERSION = TLS_1_2_PROTOCOL;
- String JAVA_11_MAX_SUPPORTED_TLS_PROTOCOL_VERSION = "TLSv1.3";
- String[] JAVA_8_SUPPORTED_TLS_PROTOCOL_VERSIONS = new
String[]{JAVA_8_MAX_SUPPORTED_TLS_PROTOCOL_VERSION};
- String[] JAVA_11_SUPPORTED_TLS_PROTOCOL_VERSIONS = new
String[]{JAVA_11_MAX_SUPPORTED_TLS_PROTOCOL_VERSION,
JAVA_8_MAX_SUPPORTED_TLS_PROTOCOL_VERSION};
-
-
/**
* Returns {@code true} if the provided TlsConfiguration is {@code null}
or <em>empty</em>
* (i.e. neither any of the keystore nor truststore properties are
populated).
@@ -171,64 +154,4 @@ public interface TlsConfiguration {
* @return Enabled TLS Protocols
*/
String[] getEnabledProtocols();
-
- /**
- * Returns the JVM Java major version based on the System properties (e.g.
{@code JVM 1.8.0.231} -> {code 8}).
- *
- * @return the Java major version
- */
- static int getJavaVersion() {
- String version = System.getProperty("java.version");
- return parseJavaVersion(version);
- }
-
- /**
- * Returns the major version parsed from the provided Java version string
(e.g. {@code "1.8.0.231"} -> {@code 8}).
- *
- * @param version the Java version string
- * @return the major version as an int
- */
- static int parseJavaVersion(String version) {
- String majorVersion;
- if (version.startsWith("1.")) {
- majorVersion = version.substring(2, 3);
- } else {
- Pattern majorVersion9PlusPattern = Pattern.compile("(\\d+).*");
- Matcher m = majorVersion9PlusPattern.matcher(version);
- if (m.find()) {
- majorVersion = m.group(1);
- } else {
- throw new IllegalArgumentException("Could not detect major
version of " + version);
- }
- }
- return Integer.parseInt(majorVersion);
- }
-
- /**
- * Returns a {@code String[]} of supported TLS protocol versions based on
the current Java platform version.
- *
- * @return the supported TLS protocol version(s)
- */
- static String[] getCurrentSupportedTlsProtocolVersions() {
- int javaMajorVersion = getJavaVersion();
- if (javaMajorVersion < 11) {
- return JAVA_8_SUPPORTED_TLS_PROTOCOL_VERSIONS;
- } else {
- return JAVA_11_SUPPORTED_TLS_PROTOCOL_VERSIONS;
- }
- }
-
- /**
- * Returns the highest supported TLS protocol version based on the current
Java platform version.
- *
- * @return the TLS protocol (e.g. {@code "TLSv1.2"})
- */
- static String getHighestCurrentSupportedTlsProtocolVersion() {
- int javaMajorVersion = getJavaVersion();
- if (javaMajorVersion < 11) {
- return JAVA_8_MAX_SUPPORTED_TLS_PROTOCOL_VERSION;
- } else {
- return JAVA_11_MAX_SUPPORTED_TLS_PROTOCOL_VERSION;
- }
- }
}
diff --git
a/nifi-commons/nifi-security-utils-api/src/test/java/org/apache/nifi/security/util/TlsConfigurationTest.java
b/nifi-commons/nifi-security-utils-api/src/test/java/org/apache/nifi/security/util/TlsConfigurationTest.java
deleted file mode 100644
index 4f2391c360..0000000000
---
a/nifi-commons/nifi-security-utils-api/src/test/java/org/apache/nifi/security/util/TlsConfigurationTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.security.util;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.EnabledForJreRange;
-import org.junit.jupiter.api.condition.JRE;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.ValueSource;
-
-import static org.junit.jupiter.api.Assertions.assertArrayEquals;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class TlsConfigurationTest {
-
- @ParameterizedTest
- @ValueSource(strings = {"1.5.0", "1.6.0", "1.7.0.123", "1.8.0.231",
"9.0.1", "10.1.2", "11.2.3", "12.3.456"})
- public void testParseJavaVersion(String version) {
- int javaVersion = TlsConfiguration.parseJavaVersion(version);
-
- assertTrue(javaVersion >= 5 && javaVersion <= 12);
- }
-
- @Test
- @EnabledForJreRange(min = JRE.JAVA_11)
- public void testGeSupportedTlsProtocolVersionsForJava11AndHigher() {
- assertArrayEquals(new String[]{"TLSv1.3", "TLSv1.2"},
- TlsConfiguration.getCurrentSupportedTlsProtocolVersions());
- }
-
- @Test
- @EnabledForJreRange(max = JRE.JAVA_10)
- public void testGeSupportedTlsProtocolVersionsForJava10AndLower() {
- assertArrayEquals(new String[]{"TLSv1.2"},
- TlsConfiguration.getCurrentSupportedTlsProtocolVersions());
- }
-
- @Test
- @EnabledForJreRange(min = JRE.JAVA_11)
- public void
testGetHighestCurrentSupportedTlsProtocolVersionForJava11AndHigher() {
- assertEquals("TLSv1.3",
TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion());
- }
-
- @Test
- @EnabledForJreRange(max = JRE.JAVA_10)
- public void
testGetHighestCurrentSupportedTlsProtocolVersionForJava10AndLower() {
- assertEquals("TLSv1.2",
TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion());
- }
-}
diff --git
a/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/StandardTlsConfiguration.java
b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/StandardTlsConfiguration.java
index 687c5755ef..ebc06bf293 100644
---
a/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/StandardTlsConfiguration.java
+++
b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/StandardTlsConfiguration.java
@@ -22,7 +22,6 @@ import org.apache.nifi.util.StringUtils;
import java.io.File;
import java.net.MalformedURLException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.Properties;
@@ -35,7 +34,10 @@ import java.net.URL;
* building {@link javax.net.ssl.SSLContext}s.
*/
public class StandardTlsConfiguration implements TlsConfiguration {
- private static final String TLS_PROTOCOL_VERSION =
TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion();
+ protected static final String SSL_PROTOCOL = "SSL";
+ protected static final String TLS_PROTOCOL = "TLS";
+
+ private static final String TLS_PROTOCOL_VERSION =
TlsPlatform.getLatestProtocol();
private static final String MASKED_PASSWORD_LOG = "********";
private static final String NULL_LOG = "null";
@@ -419,10 +421,9 @@ public class StandardTlsConfiguration implements
TlsConfiguration {
final String configuredProtocol = getProtocol();
if (TLS_PROTOCOL.equals(configuredProtocol)) {
-
enabledProtocols.addAll(Arrays.asList(TlsConfiguration.getCurrentSupportedTlsProtocolVersions()));
+ enabledProtocols.addAll(TlsPlatform.getPreferredProtocols());
} else if (SSL_PROTOCOL.equals(configuredProtocol)) {
-
enabledProtocols.addAll(Arrays.asList(LEGACY_TLS_PROTOCOL_VERSIONS));
-
enabledProtocols.addAll(Arrays.asList(TlsConfiguration.getCurrentSupportedTlsProtocolVersions()));
+ enabledProtocols.addAll(TlsPlatform.getSupportedProtocols());
} else if (configuredProtocol != null) {
enabledProtocols.add(configuredProtocol);
}
diff --git
a/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/KeyStoreUtilsTest.java
b/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/KeyStoreUtilsTest.java
index f62a0d5745..da7a7e757b 100644
---
a/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/KeyStoreUtilsTest.java
+++
b/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/KeyStoreUtilsTest.java
@@ -85,8 +85,7 @@ public class KeyStoreUtilsTest {
keyStoreType,
trustStoreFile.getAbsolutePath(),
password,
- keyStoreType,
- TlsConfiguration.TLS_PROTOCOL
+ keyStoreType
);
final TlsConfiguration configuration =
KeyStoreUtils.createTlsConfigAndNewKeystoreTruststore(requested, 1, new
String[] { HOSTNAME });
final File keystoreFile = new File(configuration.getKeystorePath());
diff --git
a/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/StandardTlsConfigurationTest.java
b/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/StandardTlsConfigurationTest.java
index 9b78726c55..cc59f8c78b 100644
---
a/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/StandardTlsConfigurationTest.java
+++
b/nifi-commons/nifi-security-utils/src/test/java/org/apache/nifi/security/util/StandardTlsConfigurationTest.java
@@ -20,10 +20,7 @@ import org.apache.nifi.util.NiFiProperties;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -49,7 +46,7 @@ public class StandardTlsConfigurationTest {
private static final String TRUST_STORE_TYPE = KeystoreType.JKS.getType();
- private static final String PROTOCOL =
TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion();
+ private static final String PROTOCOL = TlsPlatform.getLatestProtocol();
private static TlsConfiguration tlsConfiguration;
@@ -235,11 +232,11 @@ public class StandardTlsConfigurationTest {
TRUST_STORE_PATH,
TRUST_STORE_PASSWORD,
TRUST_STORE_TYPE,
- TlsConfiguration.TLS_PROTOCOL
+ StandardTlsConfiguration.TLS_PROTOCOL
);
final String[] enabledProtocols = configuration.getEnabledProtocols();
-
assertArrayEquals(TlsConfiguration.getCurrentSupportedTlsProtocolVersions(),
enabledProtocols);
+ assertArrayEquals(TlsPlatform.getPreferredProtocols().toArray(new
String[0]), enabledProtocols);
}
@Test
@@ -252,14 +249,11 @@ public class StandardTlsConfigurationTest {
TRUST_STORE_PATH,
TRUST_STORE_PASSWORD,
TRUST_STORE_TYPE,
- TlsConfiguration.SSL_PROTOCOL
+ StandardTlsConfiguration.SSL_PROTOCOL
);
final String[] enabledProtocols = configuration.getEnabledProtocols();
- final List<String> expectedProtocols = new ArrayList<>();
-
expectedProtocols.addAll(Arrays.asList(TlsConfiguration.LEGACY_TLS_PROTOCOL_VERSIONS));
-
expectedProtocols.addAll(Arrays.asList(TlsConfiguration.getCurrentSupportedTlsProtocolVersions()));
- assertArrayEquals(expectedProtocols.toArray(), enabledProtocols);
+ assertArrayEquals(TlsPlatform.getSupportedProtocols().toArray(new
String[0]), enabledProtocols);
}
}
diff --git
a/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java
b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java
index 43556a7ac3..b61952fd12 100644
---
a/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java
+++
b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java
@@ -24,8 +24,8 @@ import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLSocket;
import org.apache.nifi.logging.NiFiLog;
-import org.apache.nifi.security.util.TlsConfiguration;
import org.apache.nifi.security.util.TlsException;
+import org.apache.nifi.security.util.TlsPlatform;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -65,8 +65,8 @@ public final class SocketUtils {
*/
Socket tempSocket =
sslContext.getSocketFactory().createSocket(address.getHostName(),
address.getPort());
final SSLSocket sslSocket = (SSLSocket) tempSocket;
- // Enforce custom protocols on socket
-
sslSocket.setEnabledProtocols(TlsConfiguration.getCurrentSupportedTlsProtocolVersions());
+ // Set Preferred TLS Protocol Versions
+
sslSocket.setEnabledProtocols(TlsPlatform.getPreferredProtocols().toArray(new
String[0]));
socket = sslSocket;
}
@@ -128,8 +128,8 @@ public final class SocketUtils {
serverSocket =
sslContext.getServerSocketFactory().createServerSocket(port);
final SSLServerSocket sslServerSocket = (SSLServerSocket)
serverSocket;
sslServerSocket.setNeedClientAuth(config.getNeedClientAuth());
- // Enforce custom protocols on socket
-
sslServerSocket.setEnabledProtocols(TlsConfiguration.getCurrentSupportedTlsProtocolVersions());
+ // Set Preferred TLS Protocol Versions
+
sslServerSocket.setEnabledProtocols(TlsPlatform.getPreferredProtocols().toArray(new
String[0]));
}
if (config.getSocketTimeout() != null) {
@@ -147,29 +147,6 @@ public final class SocketUtils {
return serverSocket;
}
- /**
- * Returns a {@link SSLServerSocket} for the given port and configuration.
- *
- * @param port the port for the socket
- * @param serverSocketConfiguration the {@link ServerSocketConfiguration}
- * @return the SSL server socket
- * @throws TlsException if there was a problem creating the socket
- */
- public static SSLServerSocket createSSLServerSocket(final int port, final
ServerSocketConfiguration serverSocketConfiguration) throws TlsException {
- try {
- ServerSocket serverSocket = createServerSocket(port,
serverSocketConfiguration);
- if (serverSocket instanceof SSLServerSocket) {
- return ((SSLServerSocket) serverSocket);
- } else {
- throw new TlsException("Created server socket does not support
SSL/TLS");
- }
- } catch (IOException e) {
- logger.error("Encountered an error creating SSLServerSocket: {}",
e.getLocalizedMessage());
- throw new TlsException("Error creating SSLServerSocket", e);
- }
-
- }
-
public static void closeQuietly(final Socket socket) {
if (socket == null) {
return;
diff --git
a/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/socket/SocketUtilsTest.java
b/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/socket/SocketUtilsTest.java
deleted file mode 100644
index 493af11adf..0000000000
---
a/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/socket/SocketUtilsTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.io.socket;
-
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.nifi.security.util.KeystoreType;
-import org.apache.nifi.security.util.StandardTlsConfiguration;
-import org.apache.nifi.security.util.TlsConfiguration;
-import org.apache.nifi.security.util.TlsException;
-import org.apache.nifi.util.NiFiProperties;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import javax.net.ssl.SSLServerSocket;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertArrayEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-public class SocketUtilsTest {
- private static final String KEYSTORE_PATH =
"src/test/resources/TlsConfigurationKeystore.jks";
- private static final String KEYSTORE_PASSWORD = "keystorepassword";
- private static final String KEY_PASSWORD = "keypassword";
- private static final KeystoreType KEYSTORE_TYPE = KeystoreType.JKS;
- private static final String TRUSTSTORE_PATH =
"src/test/resources/TlsConfigurationTruststore.jks";
- private static final String TRUSTSTORE_PASSWORD = "truststorepassword";
- private static final KeystoreType TRUSTSTORE_TYPE = KeystoreType.JKS;
- private static NiFiProperties mockNiFiProperties;
-
- @BeforeAll
- public static void setUpOnce() throws Exception {
- final Map<String, String> defaultProps = new HashMap<>();
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_KEYSTORE,
KEYSTORE_PATH);
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_KEYSTORE_PASSWD,
KEYSTORE_PASSWORD);
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_KEY_PASSWD,
KEY_PASSWORD);
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_KEYSTORE_TYPE,
KEYSTORE_TYPE.getType());
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_TRUSTSTORE,
TRUSTSTORE_PATH);
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_TRUSTSTORE_PASSWD,
TRUSTSTORE_PASSWORD);
-
defaultProps.put(org.apache.nifi.util.NiFiProperties.SECURITY_TRUSTSTORE_TYPE,
TRUSTSTORE_TYPE.getType());
- mockNiFiProperties = NiFiProperties.createBasicNiFiProperties(null,
defaultProps);
- }
-
- @Test
- public void testCreateSSLServerSocketShouldRestrictTlsProtocols() throws
TlsException, IOException {
- ServerSocketConfiguration mockServerSocketConfiguration = new
ServerSocketConfiguration();
-
mockServerSocketConfiguration.setTlsConfiguration(StandardTlsConfiguration.fromNiFiProperties(mockNiFiProperties));
-
- try (SSLServerSocket sslServerSocket =
SocketUtils.createSSLServerSocket(0, mockServerSocketConfiguration)) {
- String[] enabledProtocols = sslServerSocket.getEnabledProtocols();
-
assertArrayEquals(TlsConfiguration.getCurrentSupportedTlsProtocolVersions(),
enabledProtocols);
- assertFalse(ArrayUtils.contains(enabledProtocols, "TLSv1"));
- assertFalse(ArrayUtils.contains(enabledProtocols, "TLSv1.1"));
- }
- }
-
- @Test
- public void testCreateServerSocketShouldRestrictTlsProtocols() throws
TlsException, IOException {
- ServerSocketConfiguration mockServerSocketConfiguration = new
ServerSocketConfiguration();
-
mockServerSocketConfiguration.setTlsConfiguration(StandardTlsConfiguration.fromNiFiProperties(mockNiFiProperties));
-
- try (SSLServerSocket sslServerSocket =
(SSLServerSocket)SocketUtils.createServerSocket(0,
mockServerSocketConfiguration)) {
- String[] enabledProtocols = sslServerSocket.getEnabledProtocols();
-
assertArrayEquals(TlsConfiguration.getCurrentSupportedTlsProtocolVersions(),
enabledProtocols);
- assertFalse(ArrayUtils.contains(enabledProtocols, "TLSv1"));
- assertFalse(ArrayUtils.contains(enabledProtocols, "TLSv1.1"));
- }
- }
-}
diff --git
a/nifi-commons/nifi-socket-utils/src/test/resources/TlsConfigurationKeystore.jks
b/nifi-commons/nifi-socket-utils/src/test/resources/TlsConfigurationKeystore.jks
deleted file mode 100644
index 5dd2609b6d..0000000000
Binary files
a/nifi-commons/nifi-socket-utils/src/test/resources/TlsConfigurationKeystore.jks
and /dev/null differ
diff --git
a/nifi-commons/nifi-socket-utils/src/test/resources/TlsConfigurationTruststore.jks
b/nifi-commons/nifi-socket-utils/src/test/resources/TlsConfigurationTruststore.jks
deleted file mode 100644
index 4946966164..0000000000
Binary files
a/nifi-commons/nifi-socket-utils/src/test/resources/TlsConfigurationTruststore.jks
and /dev/null differ
diff --git
a/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestListenSMTP.java
b/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestListenSMTP.java
index 4d4930d649..7a1aa21630 100644
---
a/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestListenSMTP.java
+++
b/nifi-nar-bundles/nifi-email-bundle/nifi-email-processors/src/test/java/org/apache/nifi/processors/email/TestListenSMTP.java
@@ -41,7 +41,6 @@ import java.net.Socket;
import java.security.GeneralSecurityException;
import java.util.Properties;
-import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -66,8 +65,7 @@ public class TestListenSMTP {
testTlsConfiguration.getKeystoreType(),
testTlsConfiguration.getTruststorePath(),
testTlsConfiguration.getTruststorePassword(),
- testTlsConfiguration.getTruststoreType(),
- TlsConfiguration.TLS_1_2_PROTOCOL
+ testTlsConfiguration.getTruststoreType()
);
final SSLContext sslContext =
SslContextFactory.createSslContext(tlsConfiguration);
@@ -119,28 +117,6 @@ public class TestListenSMTP {
runner.assertAllFlowFilesTransferred(ListenSMTP.REL_SUCCESS, MESSAGES);
}
- @Test
- public void testListenSMTPwithTLSLegacyProtocolException() throws
Exception {
- final TestRunner runner = newTestRunner();
-
- configureSslContextService(runner);
- runner.setProperty(ListenSMTP.SSL_CONTEXT_SERVICE,
SSL_SERVICE_IDENTIFIER);
- runner.setProperty(ListenSMTP.CLIENT_AUTH, ClientAuth.NONE.name());
- runner.assertValid();
-
- runner.run(1, false);
-
- final int port = ((ListenSMTP)
runner.getProcessor()).getListeningPort();
- assertPortListening(port);
-
- final Session session = getSessionTls(port,
TlsConfiguration.TLS_1_0_PROTOCOL);
- final MessagingException exception =
assertThrows(MessagingException.class, () -> sendMessage(session, 0));
- assertEquals(exception.getMessage(), "Could not convert socket to
TLS");
-
- runner.shutdown();
- runner.assertAllFlowFilesTransferred(ListenSMTP.REL_SUCCESS, 0);
- }
-
@Test
public void testListenSMTPwithTooLargeMessage() throws
InterruptedException {
final TestRunner runner = newTestRunner();
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/server/ConnectionLoadBalanceServer.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/server/ConnectionLoadBalanceServer.java
index bc4bc344a3..4c03c637c4 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/server/ConnectionLoadBalanceServer.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/clustered/server/ConnectionLoadBalanceServer.java
@@ -39,7 +39,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.nifi.events.EventReporter;
import org.apache.nifi.reporting.Severity;
import org.apache.nifi.security.util.CertificateUtils;
-import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -119,8 +119,8 @@ public class ConnectionLoadBalanceServer {
} else {
final SSLServerSocket serverSocket = (SSLServerSocket)
sslContext.getServerSocketFactory().createServerSocket(port, 50, inetAddress);
serverSocket.setNeedClientAuth(true);
- // Enforce custom protocols on socket
-
serverSocket.setEnabledProtocols(TlsConfiguration.getCurrentSupportedTlsProtocolVersions());
+ // Set Preferred TLS Protocol Versions
+
serverSocket.setEnabledProtocols(TlsPlatform.getPreferredProtocols().toArray(new
String[0]));
return serverSocket;
}
}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
index d25edbcf2a..29ba45bd66 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java
@@ -55,7 +55,7 @@ import
org.apache.nifi.remote.io.socket.SocketCommunicationsSession;
import org.apache.nifi.remote.protocol.CommunicationsSession;
import org.apache.nifi.remote.protocol.RequestType;
import org.apache.nifi.remote.protocol.ServerProtocol;
-import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
import org.apache.nifi.util.NiFiProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -381,8 +381,8 @@ public class SocketRemoteSiteListener implements
RemoteSiteListener {
if (sslContext != null) {
final SSLServerSocket serverSocket = (SSLServerSocket)
sslContext.getServerSocketFactory().createServerSocket(socketPort);
serverSocket.setNeedClientAuth(true);
- // Enforce custom protocols on socket
-
serverSocket.setEnabledProtocols(TlsConfiguration.getCurrentSupportedTlsProtocolVersions());
+ // Set Preferred TLS Protocol Versions
+
serverSocket.setEnabledProtocols(TlsPlatform.getPreferredProtocols().toArray(new
String[0]));
return serverSocket;
} else {
return new ServerSocket(socketPort);
diff --git
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/web/util/ssl/SslContextUtils.java
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/web/util/ssl/SslContextUtils.java
index f3f09fa0c7..8935b3b0e3 100644
---
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/web/util/ssl/SslContextUtils.java
+++
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/web/util/ssl/SslContextUtils.java
@@ -44,8 +44,7 @@ public class SslContextUtils {
TLS_CONFIGURATION.getKeystoreType().getType(),
TLS_CONFIGURATION.getTruststorePath(),
TLS_CONFIGURATION.getTruststorePassword(),
- TLS_CONFIGURATION.getTruststoreType().getType(),
- TlsConfiguration.TLS_1_2_PROTOCOL
+ TLS_CONFIGURATION.getTruststoreType().getType()
);
TRUSTSTORE_TLS_CONFIGURATION = new StandardTlsConfiguration(
@@ -55,8 +54,7 @@ public class SslContextUtils {
null,
TLS_CONFIGURATION.getTruststorePath(),
TLS_CONFIGURATION.getTruststorePassword(),
- TLS_CONFIGURATION.getTruststoreType().getType(),
- TlsConfiguration.TLS_1_2_PROTOCOL
+ TLS_CONFIGURATION.getTruststoreType().getType()
);
} catch (final Exception e) {
throw new IllegalStateException("Failed to create TLS
configuration for testing", e);
diff --git
a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardRestrictedSSLContextService.java
b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardRestrictedSSLContextService.java
index 9e69dde969..dc9a14873f 100644
---
a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardRestrictedSSLContextService.java
+++
b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardRestrictedSSLContextService.java
@@ -24,7 +24,6 @@ import org.apache.nifi.annotation.documentation.Tags;
import org.apache.nifi.components.AllowableValue;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.security.util.TlsConfiguration;
import org.apache.nifi.security.util.TlsPlatform;
/**
@@ -43,7 +42,7 @@ public class StandardRestrictedSSLContextService extends
StandardSSLContextServi
public static final PropertyDescriptor RESTRICTED_SSL_ALGORITHM = new
PropertyDescriptor.Builder()
.name("SSL Protocol")
.displayName("TLS Protocol")
- .defaultValue(TlsConfiguration.TLS_PROTOCOL)
+ .defaultValue(TLS_PROTOCOL)
.required(false)
.allowableValues(getRestrictedProtocolAllowableValues())
.description("TLS Protocol Version for encrypted connections.
Supported versions depend on the specific version of Java used.")
@@ -79,7 +78,7 @@ public class StandardRestrictedSSLContextService extends
StandardSSLContextServi
private static AllowableValue[] getRestrictedProtocolAllowableValues() {
final List<AllowableValue> allowableValues = new ArrayList<>();
- allowableValues.add(new AllowableValue(TlsConfiguration.TLS_PROTOCOL,
TlsConfiguration.TLS_PROTOCOL, "Negotiate latest protocol version based on
platform supported versions"));
+ allowableValues.add(new AllowableValue(TLS_PROTOCOL, TLS_PROTOCOL,
"Negotiate latest protocol version based on platform supported versions"));
for (final String preferredProtocol :
TlsPlatform.getPreferredProtocols()) {
final String description = String.format("Require %s protocol
version", preferredProtocol);
diff --git
a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
index 3055233ee3..a6d600f174 100644
---
a/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
+++
b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
@@ -63,6 +63,10 @@ import java.util.Map;
+ "allows a specific set of SSL protocols to be chosen.")
public class StandardSSLContextService extends AbstractControllerService
implements SSLContextService {
+ public static final String TLS_PROTOCOL = "TLS";
+
+ public static final String SSL_PROTOCOL = "SSL";
+
public static final PropertyDescriptor TRUSTSTORE = new
PropertyDescriptor.Builder()
.name("Truststore Filename")
.description("The fully-qualified filename of the Truststore")
@@ -120,7 +124,7 @@ public class StandardSSLContextService extends
AbstractControllerService impleme
public static final PropertyDescriptor SSL_ALGORITHM = new
PropertyDescriptor.Builder()
.name("SSL Protocol")
.displayName("TLS Protocol")
- .defaultValue(TlsConfiguration.TLS_PROTOCOL)
+ .defaultValue(TLS_PROTOCOL)
.required(false)
.allowableValues(getProtocolAllowableValues())
.description("SSL or TLS Protocol Version for encrypted
connections. Supported versions include insecure legacy options and depend on
the specific version of Java used.")
@@ -129,6 +133,7 @@ public class StandardSSLContextService extends
AbstractControllerService impleme
.build();
private static final List<PropertyDescriptor> properties;
+
protected ConfigurationContext configContext;
private boolean isValidated;
@@ -562,8 +567,8 @@ public class StandardSSLContextService extends
AbstractControllerService impleme
private static AllowableValue[] getProtocolAllowableValues() {
final List<AllowableValue> allowableValues = new ArrayList<>();
- allowableValues.add(new AllowableValue(TlsConfiguration.SSL_PROTOCOL,
TlsConfiguration.SSL_PROTOCOL, "Negotiate latest SSL or TLS protocol version
based on platform supported versions"));
- allowableValues.add(new AllowableValue(TlsConfiguration.TLS_PROTOCOL,
TlsConfiguration.TLS_PROTOCOL, "Negotiate latest TLS protocol version based on
platform supported versions"));
+ allowableValues.add(new AllowableValue(SSL_PROTOCOL, SSL_PROTOCOL,
"Negotiate latest SSL or TLS protocol version based on platform supported
versions"));
+ allowableValues.add(new AllowableValue(TLS_PROTOCOL, TLS_PROTOCOL,
"Negotiate latest TLS protocol version based on platform supported versions"));
for (final String supportedProtocol :
TlsPlatform.getSupportedProtocols()) {
final String description = String.format("Require %s protocol
version", supportedProtocol);
diff --git
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/SslConfigurationUtil.java
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/SslConfigurationUtil.java
index 706ef3a670..1dc9004735 100644
---
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/SslConfigurationUtil.java
+++
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/SslConfigurationUtil.java
@@ -20,6 +20,7 @@ package org.apache.nifi.stateless.config;
import org.apache.nifi.security.util.SslContextFactory;
import org.apache.nifi.security.util.StandardTlsConfiguration;
import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
import javax.net.ssl.SSLContext;
@@ -49,6 +50,6 @@ public class SslConfigurationUtil {
sslContextDefinition.getTruststoreFile(),
sslContextDefinition.getTruststorePass(),
sslContextDefinition.getTruststoreType(),
- TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion());
+ TlsPlatform.getLatestProtocol());
}
}
diff --git
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/NiFiClientConfig.java
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/NiFiClientConfig.java
index 4254ad0884..94fe240331 100644
---
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/NiFiClientConfig.java
+++
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/client/nifi/NiFiClientConfig.java
@@ -26,7 +26,7 @@ import javax.net.ssl.SSLContext;
import org.apache.nifi.registry.security.util.KeystoreType;
import org.apache.nifi.security.ssl.StandardKeyStoreBuilder;
import org.apache.nifi.security.ssl.StandardSslContextBuilder;
-import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
/**
* Configuration for a NiFiClient.
@@ -58,7 +58,7 @@ public class NiFiClientConfig {
this.truststoreFilename = builder.truststoreFilename;
this.truststorePass = builder.truststorePass;
this.truststoreType = builder.truststoreType;
- this.protocol = builder.protocol == null ?
TlsConfiguration.TLS_PROTOCOL : builder.protocol;
+ this.protocol = builder.protocol == null ?
TlsPlatform.getLatestProtocol() : builder.protocol;
this.hostnameVerifier = builder.hostnameVerifier;
this.readTimeout = builder.readTimeout;
this.connectTimeout = builder.connectTimeout;
diff --git
a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/client/TlsCertificateSigningRequestPerformer.java
b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/client/TlsCertificateSigningRequestPerformer.java
index e58ab2e9d3..70cd868cfd 100644
---
a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/client/TlsCertificateSigningRequestPerformer.java
+++
b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/client/TlsCertificateSigningRequestPerformer.java
@@ -23,7 +23,6 @@ import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.security.KeyPair;
import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
@@ -39,7 +38,7 @@ import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.nifi.security.util.CertificateUtils;
-import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
import org.apache.nifi.toolkit.tls.configuration.TlsClientConfig;
import org.apache.nifi.toolkit.tls.service.dto.TlsCertificateAuthorityRequest;
import org.apache.nifi.toolkit.tls.service.dto.TlsCertificateAuthorityResponse;
@@ -65,12 +64,12 @@ public class TlsCertificateSigningRequestPerformer {
private final ObjectMapper objectMapper;
private final String signingAlgorithm;
- public TlsCertificateSigningRequestPerformer(TlsClientConfig
tlsClientConfig) throws NoSuchAlgorithmException {
+ public TlsCertificateSigningRequestPerformer(TlsClientConfig
tlsClientConfig) {
this(HttpClientBuilder::create, tlsClientConfig.getCaHostname(),
tlsClientConfig.getDn(), tlsClientConfig.getDomainAlternativeNames(),
tlsClientConfig.getToken(), tlsClientConfig.getPort(),
tlsClientConfig.getSigningAlgorithm());
}
- protected
TlsCertificateSigningRequestPerformer(Supplier<HttpClientBuilder>
httpClientBuilderSupplier, TlsClientConfig tlsClientConfig) throws
NoSuchAlgorithmException {
+ protected
TlsCertificateSigningRequestPerformer(Supplier<HttpClientBuilder>
httpClientBuilderSupplier, TlsClientConfig tlsClientConfig) {
this(httpClientBuilderSupplier, tlsClientConfig.getCaHostname(),
tlsClientConfig.getDn(), tlsClientConfig.getDomainAlternativeNames(),
tlsClientConfig.getToken(), tlsClientConfig.getPort(),
tlsClientConfig.getSigningAlgorithm());
}
@@ -100,7 +99,7 @@ public class TlsCertificateSigningRequestPerformer {
HttpClientBuilder httpClientBuilder =
httpClientBuilderSupplier.get();
SSLContextBuilder sslContextBuilder = SSLContextBuilder.create();
-
sslContextBuilder.useProtocol(TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion());
+ sslContextBuilder.setProtocol(TlsPlatform.getLatestProtocol());
// We will be validating that we are talking to the correct host
once we get the response's hmac of the token and public key of the ca
sslContextBuilder.loadTrustMaterial(null, new
TrustSelfSignedStrategy());
diff --git
a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/server/TlsCertificateAuthorityService.java
b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/server/TlsCertificateAuthorityService.java
index bb44077ddf..26d3d44dab 100644
---
a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/server/TlsCertificateAuthorityService.java
+++
b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/service/server/TlsCertificateAuthorityService.java
@@ -25,7 +25,7 @@ import java.security.KeyPair;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
-import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
import org.apache.nifi.toolkit.tls.configuration.TlsConfig;
import org.apache.nifi.toolkit.tls.manager.TlsCertificateAuthorityManager;
import org.apache.nifi.toolkit.tls.manager.writer.JsonConfigurationWriter;
@@ -63,7 +63,7 @@ public class TlsCertificateAuthorityService {
Server server = new Server();
SslContextFactory sslContextFactory = new SslContextFactory.Server();
-
sslContextFactory.setIncludeProtocols(TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion());
+ sslContextFactory.setIncludeProtocols(TlsPlatform.getLatestProtocol());
sslContextFactory.setKeyStore(keyStore);
sslContextFactory.setKeyManagerPassword(keyPassword);
diff --git
a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/status/TlsToolkitGetStatusCommandLine.java
b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/status/TlsToolkitGetStatusCommandLine.java
index 49e8521ba4..4ae971d23c 100644
---
a/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/status/TlsToolkitGetStatusCommandLine.java
+++
b/nifi-toolkit/nifi-toolkit-tls/src/main/java/org/apache/nifi/toolkit/tls/status/TlsToolkitGetStatusCommandLine.java
@@ -23,6 +23,7 @@ import org.apache.commons.cli.CommandLine;
import org.apache.nifi.security.util.SslContextFactory;
import org.apache.nifi.security.util.StandardTlsConfiguration;
import org.apache.nifi.security.util.TlsConfiguration;
+import org.apache.nifi.security.util.TlsPlatform;
import org.apache.nifi.toolkit.tls.commandLine.BaseCommandLine;
import org.apache.nifi.toolkit.tls.commandLine.CommandLineParseException;
import org.apache.nifi.toolkit.tls.commandLine.ExitCode;
@@ -45,7 +46,7 @@ public class TlsToolkitGetStatusCommandLine extends
BaseCommandLine {
public static final String TRUSTSTORE_PASSWORD_ARG = "trustStorePassword";
public static final String PROTOCOL_ARG = "protocol";
- public static final String DEFAULT_PROTOCOL =
TlsConfiguration.getHighestCurrentSupportedTlsProtocolVersion();
+ public static final String DEFAULT_PROTOCOL =
TlsPlatform.getLatestProtocol();
public static final String DEFAULT_KEYSTORE_TYPE = "JKS";
public static final String DESCRIPTION = "Checks the status of an HTTPS
endpoint by making a GET request using a supplied keystore and truststore.";