This is an automated email from the ASF dual-hosted git repository.

exceptionfactory 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 ee7a905c40 NIFI-13551 Fixed framework SSLContext loading for Headless 
Server
ee7a905c40 is described below

commit ee7a905c4095e1aa1c449d2a7b53d30cbdff905a
Author: Ferenc Erdei <[email protected]>
AuthorDate: Tue Jul 16 09:52:06 2024 +0200

    NIFI-13551 Fixed framework SSLContext loading for Headless Server
    
    - Changed conditional from evaluating HTTPS port to evaluating store path 
and password properties
    
    This closes #9083
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../apache/nifi/framework/ssl/FrameworkSslContextProvider.java   | 9 +++++++--
 .../main/java/org/apache/nifi/headless/HeadlessNiFiServer.java   | 7 +++----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/framework/ssl/FrameworkSslContextProvider.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/framework/ssl/FrameworkSslContextProvider.java
index 9374ea8550..7a651e2b97 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/framework/ssl/FrameworkSslContextProvider.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/framework/ssl/FrameworkSslContextProvider.java
@@ -82,7 +82,7 @@ public class FrameworkSslContextProvider {
     private KeyManagerBuilder getKeyManagerBuilder() {
         final KeyManagerBuilder keyManagerBuilder;
 
-        if (properties.isHTTPSConfigured()) {
+        if (isPropertyConfigured(SECURITY_KEYSTORE) && 
isPropertyConfigured(SECURITY_KEYSTORE_PASSWD)) {
             final Path keyStorePath = getKeyStorePath();
             final String keyStorePassword = 
properties.getProperty(SECURITY_KEYSTORE_PASSWD, EMPTY);
             final char[] keyPassword = 
properties.getProperty(SECURITY_KEY_PASSWD, keyStorePassword).toCharArray();
@@ -102,7 +102,7 @@ public class FrameworkSslContextProvider {
     private TrustManagerBuilder getTrustManagerBuilder() {
         final TrustManagerBuilder trustManagerBuilder;
 
-        if (properties.isHTTPSConfigured()) {
+        if (isPropertyConfigured(SECURITY_TRUSTSTORE) && 
isPropertyConfigured(SECURITY_TRUSTSTORE_PASSWD)) {
             final Path trustStorePath = getTrustStorePath();
             final String trustStorePassword = 
properties.getProperty(SECURITY_TRUSTSTORE_PASSWD, EMPTY);
             final String trustStoreType = 
properties.getProperty(SECURITY_TRUSTSTORE_TYPE);
@@ -134,4 +134,9 @@ public class FrameworkSslContextProvider {
 
         return Paths.get(trustStoreProperty);
     }
+
+    private boolean isPropertyConfigured(final String propertyName) {
+        final String value = properties.getProperty(propertyName);
+        return value != null && !value.isBlank();
+    }
 }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-headless-server/src/main/java/org/apache/nifi/headless/HeadlessNiFiServer.java
 
b/nifi-framework-bundle/nifi-framework/nifi-headless-server/src/main/java/org/apache/nifi/headless/HeadlessNiFiServer.java
index b4e93ed218..f64a738358 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-headless-server/src/main/java/org/apache/nifi/headless/HeadlessNiFiServer.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-headless-server/src/main/java/org/apache/nifi/headless/HeadlessNiFiServer.java
@@ -47,7 +47,7 @@ import 
org.apache.nifi.diagnostics.bootstrap.BootstrapDiagnosticsFactory;
 import org.apache.nifi.encrypt.PropertyEncryptor;
 import org.apache.nifi.encrypt.PropertyEncryptorBuilder;
 import org.apache.nifi.events.VolatileBulletinRepository;
-import org.apache.nifi.framework.configuration.SslContextConfiguration;
+import org.apache.nifi.framework.ssl.FrameworkSslContextProvider;
 import org.apache.nifi.nar.ExtensionManager;
 import org.apache.nifi.nar.ExtensionManagerHolder;
 import org.apache.nifi.nar.ExtensionMapping;
@@ -136,9 +136,8 @@ public class HeadlessNiFiServer implements NiFiServer {
             final BulletinRepository bulletinRepository = new 
VolatileBulletinRepository();
             final StatusHistoryRepository statusHistoryRepository = 
getStatusHistoryRepository(extensionManager);
 
-            final SslContextConfiguration sslContextConfiguration = new 
SslContextConfiguration();
-            sslContextConfiguration.setProperties(props);
-            final SSLContext sslContext = sslContextConfiguration.sslContext();
+            final FrameworkSslContextProvider sslContextProvider = new 
FrameworkSslContextProvider(props);
+            final SSLContext sslContext = 
sslContextProvider.loadSslContext().orElse(null);
             final StateManagerProvider stateManagerProvider = 
StandardStateManagerProvider.create(props, sslContext, extensionManager, 
ParameterLookup.EMPTY);
 
             flowController = FlowController.createStandaloneInstance(

Reply via email to