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

pvillard 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 ae2277478a NIFI-13842 Fixed truststore/keystore setup in AWS v2 
components
ae2277478a is described below

commit ae2277478ae9eff44332deb03adb4934df854030
Author: Peter Turcsanyi <[email protected]>
AuthorDate: Fri Oct 4 09:57:34 2024 +0200

    NIFI-13842 Fixed truststore/keystore setup in AWS v2 components
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #9346.
---
 .../nifi/processors/aws/v2/AbstractAwsAsyncProcessor.java |  6 +++---
 .../nifi/processors/aws/v2/AbstractAwsProcessor.java      | 15 +++++++++++----
 .../nifi/processors/aws/v2/AbstractAwsSyncProcessor.java  |  6 +++---
 .../nifi/processors/aws/v2/AwsHttpClientConfigurer.java   |  4 ++--
 .../nifi/aws/schemaregistry/AmazonGlueSchemaRegistry.java | 14 +++++++++-----
 5 files changed, 28 insertions(+), 17 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsAsyncProcessor.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsAsyncProcessor.java
index 659b2a674b..3ad78cb3cf 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsAsyncProcessor.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsAsyncProcessor.java
@@ -22,11 +22,11 @@ import 
software.amazon.awssdk.awscore.client.builder.AwsAsyncClientBuilder;
 import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
 import software.amazon.awssdk.core.SdkClient;
 import software.amazon.awssdk.http.TlsKeyManagersProvider;
+import software.amazon.awssdk.http.TlsTrustManagersProvider;
 import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
 import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
 import software.amazon.awssdk.regions.Region;
 
-import javax.net.ssl.TrustManager;
 import java.time.Duration;
 
 /**
@@ -78,8 +78,8 @@ public abstract class AbstractAwsAsyncProcessor<
             }
 
             @Override
-            public void configureTls(final TrustManager[] trustManagers, final 
TlsKeyManagersProvider keyManagersProvider) {
-                builder.tlsTrustManagersProvider(() -> trustManagers);
+            public void configureTls(final TlsTrustManagersProvider 
trustManagersProvider, final TlsKeyManagersProvider keyManagersProvider) {
+                builder.tlsTrustManagersProvider(trustManagersProvider);
                 builder.tlsKeyManagersProvider(keyManagersProvider);
             }
 
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsProcessor.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsProcessor.java
index 1288a988fb..e6c9393fae 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsProcessor.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsProcessor.java
@@ -48,6 +48,7 @@ import 
software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
 import software.amazon.awssdk.core.retry.RetryPolicy;
 import software.amazon.awssdk.http.FileStoreTlsKeyManagersProvider;
 import software.amazon.awssdk.http.TlsKeyManagersProvider;
+import software.amazon.awssdk.http.TlsTrustManagersProvider;
 import software.amazon.awssdk.regions.Region;
 
 import javax.net.ssl.TrustManager;
@@ -290,10 +291,16 @@ public abstract class AbstractAwsProcessor<T extends 
SdkClient> extends Abstract
         if 
(this.getSupportedPropertyDescriptors().contains(SSL_CONTEXT_SERVICE)) {
             final SSLContextService sslContextService = 
context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class);
             if (sslContextService != null) {
-                final TrustManager[] trustManagers = new TrustManager[] 
{sslContextService.createTrustManager()};
-                final TlsKeyManagersProvider keyManagersProvider = 
FileStoreTlsKeyManagersProvider
-                        .create(Path.of(sslContextService.getKeyStoreFile()), 
sslContextService.getKeyStoreType(), sslContextService.getKeyStorePassword());
-                httpClientConfigurer.configureTls(trustManagers, 
keyManagersProvider);
+                TlsTrustManagersProvider trustManagersProvider = null;
+                TlsKeyManagersProvider keyManagersProvider = null;
+                if (sslContextService.isTrustStoreConfigured()) {
+                    trustManagersProvider = () -> new 
TrustManager[]{sslContextService.createTrustManager()};
+                }
+                if (sslContextService.isKeyStoreConfigured()) {
+                    keyManagersProvider = FileStoreTlsKeyManagersProvider
+                            
.create(Path.of(sslContextService.getKeyStoreFile()), 
sslContextService.getKeyStoreType(), sslContextService.getKeyStorePassword());
+                }
+                httpClientConfigurer.configureTls(trustManagersProvider, 
keyManagersProvider);
             }
         }
 
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsSyncProcessor.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsSyncProcessor.java
index 62df38dcaf..0298e671c8 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsSyncProcessor.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AbstractAwsSyncProcessor.java
@@ -23,10 +23,10 @@ import 
software.amazon.awssdk.awscore.client.builder.AwsSyncClientBuilder;
 import software.amazon.awssdk.core.SdkClient;
 import software.amazon.awssdk.http.SdkHttpClient;
 import software.amazon.awssdk.http.TlsKeyManagersProvider;
+import software.amazon.awssdk.http.TlsTrustManagersProvider;
 import software.amazon.awssdk.http.apache.ApacheHttpClient;
 import software.amazon.awssdk.regions.Region;
 
-import javax.net.ssl.TrustManager;
 import java.net.URI;
 import java.time.Duration;
 
@@ -83,8 +83,8 @@ public abstract class AbstractAwsSyncProcessor<
             }
 
             @Override
-            public void configureTls(final TrustManager[] trustManagers, final 
TlsKeyManagersProvider keyManagersProvider) {
-                builder.tlsTrustManagersProvider(() -> trustManagers);
+            public void configureTls(final TlsTrustManagersProvider 
trustManagersProvider, final TlsKeyManagersProvider keyManagersProvider) {
+                builder.tlsTrustManagersProvider(trustManagersProvider);
                 builder.tlsKeyManagersProvider(keyManagersProvider);
             }
 
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AwsHttpClientConfigurer.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AwsHttpClientConfigurer.java
index f2bea15a3a..e594b68171 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AwsHttpClientConfigurer.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/v2/AwsHttpClientConfigurer.java
@@ -18,15 +18,15 @@ package org.apache.nifi.processors.aws.v2;
 
 import org.apache.nifi.proxy.ProxyConfiguration;
 import software.amazon.awssdk.http.TlsKeyManagersProvider;
+import software.amazon.awssdk.http.TlsTrustManagersProvider;
 
-import javax.net.ssl.TrustManager;
 import java.time.Duration;
 
 public interface AwsHttpClientConfigurer {
 
     void configureBasicSettings(Duration communicationsTimeout, int 
maxConcurrentTasks);
 
-    void configureTls(TrustManager[] trustManagers, TlsKeyManagersProvider 
keyManagersProvider);
+    void configureTls(TlsTrustManagersProvider trustManagersProvider, 
TlsKeyManagersProvider keyManagersProvider);
 
     void configureProxy(ProxyConfiguration proxyConfiguration);
 }
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-schema-registry-service/src/main/java/org/apache/nifi/aws/schemaregistry/AmazonGlueSchemaRegistry.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-schema-registry-service/src/main/java/org/apache/nifi/aws/schemaregistry/AmazonGlueSchemaRegistry.java
index 2769c24117..0114abb561 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-schema-registry-service/src/main/java/org/apache/nifi/aws/schemaregistry/AmazonGlueSchemaRegistry.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-schema-registry-service/src/main/java/org/apache/nifi/aws/schemaregistry/AmazonGlueSchemaRegistry.java
@@ -221,11 +221,15 @@ public class AmazonGlueSchemaRegistry extends 
AbstractControllerService implemen
         if 
(this.getSupportedPropertyDescriptors().contains(SSL_CONTEXT_SERVICE)) {
             final SSLContextService sslContextService = 
context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class);
             if (sslContextService != null) {
-                final TrustManager[] trustManagers = new 
TrustManager[]{sslContextService.createTrustManager()};
-                final TlsKeyManagersProvider keyManagersProvider = 
FileStoreTlsKeyManagersProvider
-                        
.create(Paths.get(sslContextService.getKeyStoreFile()), 
sslContextService.getKeyStoreType(), sslContextService.getKeyStorePassword());
-                builder.tlsTrustManagersProvider(() -> trustManagers);
-                builder.tlsKeyManagersProvider(keyManagersProvider);
+                if (sslContextService.isTrustStoreConfigured()) {
+                    final TrustManager[] trustManagers = new 
TrustManager[]{sslContextService.createTrustManager()};
+                    builder.tlsTrustManagersProvider(() -> trustManagers);
+                }
+                if (sslContextService.isKeyStoreConfigured()) {
+                    final TlsKeyManagersProvider keyManagersProvider = 
FileStoreTlsKeyManagersProvider
+                            
.create(Paths.get(sslContextService.getKeyStoreFile()), 
sslContextService.getKeyStoreType(), sslContextService.getKeyStorePassword());
+                    builder.tlsKeyManagersProvider(keyManagersProvider);
+                }
             }
         }
         final ProxyConfiguration proxyConfig = 
ProxyConfiguration.getConfiguration(context, () -> {

Reply via email to