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

joewitt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 55b0b58a577f9b54b09ec8995bec5a39d3729dca
Author: exceptionfactory <[email protected]>
AuthorDate: Sat Mar 1 22:43:40 2025 -0600

    NIFI-14310 Updated System Test Suite to use HTTPS
    This closes #9760
    
    - Added System Test Authorizer
    - Added random password generation for system test stores
---
 .../nifi-system-test-authorizer-nar}/pom.xml       | 30 +++++----
 .../nifi-system-test-authorizer}/pom.xml           | 24 +++----
 .../nifi/authorization/SystemTestAuthorizer.java   | 43 +++++++++++++
 .../org.apache.nifi.authorization.Authorizer       | 15 +++++
 .../pom.xml                                        | 16 ++---
 nifi-system-tests/nifi-system-test-suite/pom.xml   |  6 ++
 .../src/test/assembly/dependencies.xml             |  3 +-
 .../nifi/tests/system/AggregateNiFiInstance.java   |  8 +++
 .../apache/nifi/tests/system/NiFiClientUtil.java   |  2 +-
 .../org/apache/nifi/tests/system/NiFiInstance.java |  9 +++
 .../nifi/tests/system/NiFiInstanceCache.java       |  7 +++
 .../org/apache/nifi/tests/system/NiFiSystemIT.java | 16 +++--
 .../tests/system/NiFiSystemKeyStoreProvider.java   | 47 +++++++++++---
 .../SpawnedStandaloneNiFiInstanceFactory.java      | 73 ++++++++++------------
 .../clustering/RestartWithDifferentPortIT.java     |  4 +-
 .../resources/conf/clustered/node1/authorizers.xml | 21 +++++++
 .../resources/conf/clustered/node1/nifi.properties | 20 +++---
 .../resources/conf/clustered/node2/authorizers.xml | 21 +++++++
 .../resources/conf/clustered/node2/nifi.properties | 20 +++---
 .../test/resources/conf/default/authorizers.xml    | 21 +++++++
 .../test/resources/conf/default/nifi.properties    | 20 +++---
 .../test/resources/conf/pythonic/authorizers.xml   | 21 +++++++
 .../src/test/resources/conf/pythonic/logback.xml   |  2 +
 .../test/resources/conf/pythonic/nifi.properties   | 20 +++---
 nifi-system-tests/pom.xml                          |  1 +
 25 files changed, 331 insertions(+), 139 deletions(-)

diff --git a/nifi-system-tests/pom.xml 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer-nar/pom.xml
similarity index 58%
copy from nifi-system-tests/pom.xml
copy to 
nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer-nar/pom.xml
index 5ead4f18b3..4d70d232f4 100644
--- a/nifi-system-tests/pom.xml
+++ 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer-nar/pom.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
+  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
+  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.
@@ -15,23 +15,21 @@
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <modelVersion>4.0.0</modelVersion>
+
     <parent>
-        <artifactId>nifi</artifactId>
         <groupId>org.apache.nifi</groupId>
+        <artifactId>nifi-system-test-authorizer-bundle</artifactId>
         <version>2.3.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>nifi-system-tests</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>nifi-system-test-extensions-bundle</module>
-        <module>nifi-system-test-extensions2-bundle</module>
-        <module>nifi-alternate-config-extensions-bundle</module>
-        <module>nifi-system-test-nar-provider-bundles</module>
-        <module>nifi-python-test-extensions-nar</module>
-        <module>nifi-system-test-suite</module>
-        <module>nifi-stateless-system-test-suite</module>
-    </modules>
+    <artifactId>nifi-system-test-authorizer-nar</artifactId>
+    <packaging>nar</packaging>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-system-test-authorizer</artifactId>
+            <version>2.3.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/nifi-system-tests/pom.xml 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/pom.xml
similarity index 68%
copy from nifi-system-tests/pom.xml
copy to 
nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/pom.xml
index 5ead4f18b3..41030ffa74 100644
--- a/nifi-system-tests/pom.xml
+++ 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/pom.xml
@@ -14,24 +14,20 @@
   limitations under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>nifi</artifactId>
+        <artifactId>nifi-system-test-authorizer-bundle</artifactId>
         <groupId>org.apache.nifi</groupId>
         <version>2.3.0-SNAPSHOT</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>nifi-system-tests</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>nifi-system-test-extensions-bundle</module>
-        <module>nifi-system-test-extensions2-bundle</module>
-        <module>nifi-alternate-config-extensions-bundle</module>
-        <module>nifi-system-test-nar-provider-bundles</module>
-        <module>nifi-python-test-extensions-nar</module>
-        <module>nifi-system-test-suite</module>
-        <module>nifi-stateless-system-test-suite</module>
-    </modules>
+    <artifactId>nifi-system-test-authorizer</artifactId>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-framework-api</artifactId>
+            <version>2.3.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
 </project>
diff --git 
a/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/src/main/java/org/apache/nifi/authorization/SystemTestAuthorizer.java
 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/src/main/java/org/apache/nifi/authorization/SystemTestAuthorizer.java
new file mode 100644
index 0000000000..278d44c03d
--- /dev/null
+++ 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/src/main/java/org/apache/nifi/authorization/SystemTestAuthorizer.java
@@ -0,0 +1,43 @@
+/*
+ * 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.authorization;
+
+import org.apache.nifi.authorization.exception.AuthorizationAccessException;
+import org.apache.nifi.authorization.exception.AuthorizerCreationException;
+import org.apache.nifi.authorization.exception.AuthorizerDestructionException;
+
+public class SystemTestAuthorizer implements Authorizer {
+    @Override
+    public AuthorizationResult authorize(final AuthorizationRequest request) 
throws AuthorizationAccessException {
+        return AuthorizationResult.approved();
+    }
+
+    @Override
+    public void initialize(AuthorizerInitializationContext 
initializationContext) throws AuthorizerCreationException {
+
+    }
+
+    @Override
+    public void onConfigured(AuthorizerConfigurationContext 
configurationContext) throws AuthorizerCreationException {
+
+    }
+
+    @Override
+    public void preDestruction() throws AuthorizerDestructionException {
+
+    }
+}
diff --git 
a/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/src/main/resources/META-INF/services/org.apache.nifi.authorization.Authorizer
 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/src/main/resources/META-INF/services/org.apache.nifi.authorization.Authorizer
new file mode 100644
index 0000000000..a9ec929e83
--- /dev/null
+++ 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/nifi-system-test-authorizer/src/main/resources/META-INF/services/org.apache.nifi.authorization.Authorizer
@@ -0,0 +1,15 @@
+# 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.
+org.apache.nifi.authorization.SystemTestAuthorizer
diff --git a/nifi-system-tests/pom.xml 
b/nifi-system-tests/nifi-system-test-authorizer-bundle/pom.xml
similarity index 71%
copy from nifi-system-tests/pom.xml
copy to nifi-system-tests/nifi-system-test-authorizer-bundle/pom.xml
index 5ead4f18b3..ac32e8095f 100644
--- a/nifi-system-tests/pom.xml
+++ b/nifi-system-tests/nifi-system-test-authorizer-bundle/pom.xml
@@ -14,24 +14,18 @@
   limitations under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>nifi</artifactId>
+        <artifactId>nifi-system-tests</artifactId>
         <groupId>org.apache.nifi</groupId>
         <version>2.3.0-SNAPSHOT</version>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>nifi-system-tests</artifactId>
+    <artifactId>nifi-system-test-authorizer-bundle</artifactId>
     <packaging>pom</packaging>
 
     <modules>
-        <module>nifi-system-test-extensions-bundle</module>
-        <module>nifi-system-test-extensions2-bundle</module>
-        <module>nifi-alternate-config-extensions-bundle</module>
-        <module>nifi-system-test-nar-provider-bundles</module>
-        <module>nifi-python-test-extensions-nar</module>
-        <module>nifi-system-test-suite</module>
-        <module>nifi-stateless-system-test-suite</module>
+        <module>nifi-system-test-authorizer</module>
+        <module>nifi-system-test-authorizer-nar</module>
     </modules>
-
 </project>
diff --git a/nifi-system-tests/nifi-system-test-suite/pom.xml 
b/nifi-system-tests/nifi-system-test-suite/pom.xml
index 23de5b3ac9..31532dd04d 100644
--- a/nifi-system-tests/nifi-system-test-suite/pom.xml
+++ b/nifi-system-tests/nifi-system-test-suite/pom.xml
@@ -333,6 +333,12 @@
             <version>2.3.0-SNAPSHOT</version>
             <type>nar</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.nifi</groupId>
+            <artifactId>nifi-system-test-authorizer-nar</artifactId>
+            <version>2.3.0-SNAPSHOT</version>
+            <type>nar</type>
+        </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-system-test-extensions-nar</artifactId>
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/assembly/dependencies.xml 
b/nifi-system-tests/nifi-system-test-suite/src/test/assembly/dependencies.xml
index 6c8dbf5013..6c1609baa5 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/assembly/dependencies.xml
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/assembly/dependencies.xml
@@ -35,8 +35,6 @@
                 <include>*:commons-lang3</include>
                 <include>*:slf4j-api</include>
                 <include>*:nifi-api</include>
-                <include>*:nifi-property-encryptor</include>
-                <include>*:nifi-security-crypto-key</include>
             </includes>
         </dependencySet>
 
@@ -65,6 +63,7 @@
                 <include>*:log4j-over-slf4j</include>
                 <include>*:jul-to-slf4j</include>
                 <include>*:slf4j-api</include>
+                <include>*:nifi-system-test-authorizer-nar</include>
                 <include>*:nifi-system-test-extensions-nar</include>
                 <include>*:nifi-system-test-extensions-services-nar</include>
                 
<include>*:nifi-system-test-extensions-services-api-nar</include>
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/AggregateNiFiInstance.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/AggregateNiFiInstance.java
index 17202bb2de..c0d0109374 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/AggregateNiFiInstance.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/AggregateNiFiInstance.java
@@ -16,11 +16,13 @@
  */
 package org.apache.nifi.tests.system;
 
+import javax.net.ssl.SSLContext;
 import java.io.File;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Properties;
 
 public class AggregateNiFiInstance implements NiFiInstance {
@@ -112,6 +114,12 @@ public class AggregateNiFiInstance implements NiFiInstance 
{
         return instances.get(nodeIndex - 1);
     }
 
+    @Override
+    public Optional<SSLContext> getSslContext() {
+        final NiFiInstance firstInstance = instances.getFirst();
+        return firstInstance.getSslContext();
+    }
+
     @Override
     public Properties getProperties() {
         return null;
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiClientUtil.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiClientUtil.java
index 1c9948912d..3ce5035413 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiClientUtil.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiClientUtil.java
@@ -1618,7 +1618,7 @@ public class NiFiClientUtil {
 
     public RemoteProcessGroupEntity createRPG(final String parentGroupId, 
final int httpPort, final SiteToSiteTransportProtocol transportProtocol) throws 
NiFiClientException, IOException {
         final RemoteProcessGroupDTO component = new RemoteProcessGroupDTO();
-        component.setTargetUri("http://localhost:"; + httpPort);
+        component.setTargetUri("https://localhost:%d".formatted(httpPort));
         component.setName(component.getTargetUri());
         component.setTransportProtocol(transportProtocol.name());
 
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstance.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstance.java
index 9ce8563c51..4c5ada2954 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstance.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstance.java
@@ -16,9 +16,11 @@
  */
 package org.apache.nifi.tests.system;
 
+import javax.net.ssl.SSLContext;
 import java.io.File;
 import java.io.IOException;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Properties;
 
 public interface NiFiInstance {
@@ -72,6 +74,13 @@ public interface NiFiInstance {
      */
     NiFiInstance getNodeInstance(int nodeIndex);
 
+    /**
+     * Get SSLContext from configured properties
+     *
+     * @return SSLContext or empty when not configured
+     */
+    Optional<SSLContext> getSslContext();
+
     /**
      * Returns the NiFiProperties for the node
      *
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstanceCache.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstanceCache.java
index 2d5bfa0324..2eb1474f48 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstanceCache.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiInstanceCache.java
@@ -20,10 +20,12 @@ package org.apache.nifi.tests.system;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.net.ssl.SSLContext;
 import java.io.File;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Properties;
 
 public class NiFiInstanceCache {
@@ -215,6 +217,11 @@ public class NiFiInstanceCache {
             return rawInstance.getNumberOfNodes(includeOnlyAutoStartInstances);
         }
 
+        @Override
+        public Optional<SSLContext> getSslContext() {
+            return rawInstance.getSslContext();
+        }
+
         @Override
         public NiFiInstance getNodeInstance(final int nodeIndex) {
             return rawInstance.getNodeInstance(nodeIndex);
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemIT.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemIT.java
index 0204128fd2..07041d42fc 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemIT.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemIT.java
@@ -44,6 +44,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.net.ssl.SSLContext;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -52,6 +53,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -331,11 +333,15 @@ public abstract class NiFiSystemIT implements 
NiFiInstanceProvider {
     }
 
     protected NiFiClient createClient(final int port) {
-        final NiFiClientConfig clientConfig = new NiFiClientConfig.Builder()
-                .baseUrl("http://localhost:"; + port)
-                .connectTimeout(30000)
-                .readTimeout(30000)
-                .build();
+        final NiFiClientConfig.Builder clientConfigBuilder = new 
NiFiClientConfig.Builder()
+                .baseUrl("https://localhost:"; + port)
+                .connectTimeout(15000)
+                .readTimeout(30000);
+
+        final NiFiInstance nifiInstance = nifiRef.get();
+        final Optional<SSLContext> sslContextFound = 
nifiInstance.getSslContext();
+        sslContextFound.ifPresent(clientConfigBuilder::sslContext);
+        final NiFiClientConfig clientConfig = clientConfigBuilder.build();
 
         return new JerseyNiFiClient.Builder()
                 .config(clientConfig)
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemKeyStoreProvider.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemKeyStoreProvider.java
index 55c9a5d4c8..0241175c8e 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemKeyStoreProvider.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/NiFiSystemKeyStoreProvider.java
@@ -17,7 +17,9 @@
 package org.apache.nifi.tests.system;
 
 import org.apache.nifi.security.cert.builder.StandardCertificateBuilder;
+import org.apache.nifi.security.ssl.StandardSslContextBuilder;
 
+import javax.net.ssl.SSLContext;
 import javax.security.auth.x500.X500Principal;
 import java.io.File;
 import java.io.FileOutputStream;
@@ -32,9 +34,11 @@ import java.security.KeyPairGenerator;
 import java.security.KeyStore;
 import java.security.NoSuchAlgorithmException;
 import java.security.PrivateKey;
+import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
 import java.time.Duration;
 import java.util.Collections;
+import java.util.HexFormat;
 import java.util.List;
 
 /**
@@ -47,14 +51,16 @@ public class NiFiSystemKeyStoreProvider {
 
     private static final X500Principal DISTINGUISHED_NAME = new 
X500Principal(String.format("CN=%s", HOSTNAME));
 
-    private static final String PASSWORD = 
NiFiSystemKeyStoreProvider.class.getSimpleName();
-
     private static final int VALID_DURATION_DAYS = 1;
 
     private static final String KEY_ALGORITHM = "RSA";
 
     private static final int KEY_SIZE = 4096;
 
+    private static final int PROTECTION_PARAMETER_LENGTH = 32;
+
+    private static final String PROTECTION_PARAMETER = 
generateProtectionParameter();
+
     private static final String KEYSTORE_FILE = "keystore.p12";
 
     private static final String TRUSTSTORE_FILE = "truststore.p12";
@@ -65,12 +71,18 @@ public class NiFiSystemKeyStoreProvider {
 
     private static Path persistentTrustStorePath;
 
+    private static KeyStore keyStore;
+
+    private static KeyStore trustStore;
+
+    private static SSLContext sslContext;
+
     /**
      * Configure KeyStores in provided directory and reuse existing files 
after initial generation
      *
      * @param keyStoreDirectory Directory where KeyStore and TrustStore should 
be stored
      */
-    public synchronized static void configureKeyStores(final File 
keyStoreDirectory) {
+    public synchronized static SSLContext configureKeyStores(final File 
keyStoreDirectory) {
         if (persistentKeyStorePath == null) {
             createKeyStores();
         }
@@ -88,6 +100,12 @@ public class NiFiSystemKeyStoreProvider {
         } catch (final IOException e) {
             throw new UncheckedIOException("KeyStore configuration failed", e);
         }
+
+        return sslContext;
+    }
+
+    public static String getProtectionParameter() {
+        return PROTECTION_PARAMETER;
     }
 
     private static void createKeyStores() {
@@ -102,33 +120,39 @@ public class NiFiSystemKeyStoreProvider {
 
             persistentKeyStorePath = writeKeyStore(certificate, 
keyPair.getPrivate());
             persistentKeyStorePath.toFile().deleteOnExit();
+
+            sslContext = new StandardSslContextBuilder()
+                    .trustStore(trustStore)
+                    .keyStore(keyStore)
+                    .keyPassword(PROTECTION_PARAMETER.toCharArray())
+                    .build();
         } catch (final Exception e) {
             throw new RuntimeException("KeyStore Creation Failed", e);
         }
     }
 
     private static Path writeKeyStore(final X509Certificate certificate, final 
PrivateKey privateKey) throws Exception {
-        final KeyStore keyStore = KeyStore.getInstance(KEYSTORE_TYPE);
+        keyStore = KeyStore.getInstance(KEYSTORE_TYPE);
         keyStore.load(null);
 
         final X509Certificate[] certificates = new 
X509Certificate[]{certificate};
-        keyStore.setKeyEntry(HOSTNAME, privateKey, PASSWORD.toCharArray(), 
certificates);
+        keyStore.setKeyEntry(HOSTNAME, privateKey, 
PROTECTION_PARAMETER.toCharArray(), certificates);
 
         final Path keyStorePath = Files.createTempFile(KEYSTORE_FILE, 
KEYSTORE_TYPE);
         try (final OutputStream outputStream = new 
FileOutputStream(keyStorePath.toFile())) {
-            keyStore.store(outputStream, PASSWORD.toCharArray());
+            keyStore.store(outputStream, PROTECTION_PARAMETER.toCharArray());
         }
         return keyStorePath;
     }
 
     private static Path writeTrustStore(final X509Certificate certificate) 
throws Exception {
-        final KeyStore trustStore = KeyStore.getInstance(KEYSTORE_TYPE);
+        trustStore = KeyStore.getInstance(KEYSTORE_TYPE);
         trustStore.load(null);
         trustStore.setCertificateEntry(HOSTNAME, certificate);
 
         final Path trustStorePath = Files.createTempFile(TRUSTSTORE_FILE, 
KEYSTORE_TYPE);
         try (final OutputStream outputStream = new 
FileOutputStream(trustStorePath.toFile())) {
-            trustStore.store(outputStream, PASSWORD.toCharArray());
+            trustStore.store(outputStream, PROTECTION_PARAMETER.toCharArray());
         }
         return trustStorePath;
     }
@@ -138,4 +162,11 @@ public class NiFiSystemKeyStoreProvider {
         keyPairGenerator.initialize(KEY_SIZE);
         return keyPairGenerator.generateKeyPair();
     }
+
+    private static String generateProtectionParameter() {
+        final SecureRandom secureRandom = new SecureRandom();
+        final byte[] nextBytes = new byte[PROTECTION_PARAMETER_LENGTH];
+        secureRandom.nextBytes(nextBytes);
+        return HexFormat.of().formatHex(nextBytes);
+    }
 }
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/SpawnedStandaloneNiFiInstanceFactory.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/SpawnedStandaloneNiFiInstanceFactory.java
index 7ee8ffd961..9e40a1c00a 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/SpawnedStandaloneNiFiInstanceFactory.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/SpawnedStandaloneNiFiInstanceFactory.java
@@ -22,14 +22,15 @@ import 
org.apache.nifi.bootstrap.command.process.StandardManagementServerAddress
 import 
org.apache.nifi.bootstrap.command.process.StandardProcessBuilderProvider;
 import org.apache.nifi.bootstrap.configuration.ConfigurationProvider;
 import org.apache.nifi.bootstrap.configuration.StandardConfigurationProvider;
-import org.apache.nifi.registry.security.util.KeystoreType;
 import org.apache.nifi.toolkit.client.NiFiClient;
 import org.apache.nifi.toolkit.client.NiFiClientConfig;
 import org.apache.nifi.toolkit.client.impl.JerseyNiFiClient;
+import org.apache.nifi.util.NiFiProperties;
 import org.apache.nifi.util.file.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.net.ssl.SSLContext;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -39,8 +40,10 @@ import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.nio.file.Files;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
@@ -89,6 +92,7 @@ public class SpawnedStandaloneNiFiInstanceFactory implements 
NiFiInstanceFactory
         private final InstanceConfiguration instanceConfiguration;
         private File bootstrapConfigFile;
         private Process process;
+        private SSLContext sslContext;
 
         public ProcessNiFiInstance(final InstanceConfiguration 
instanceConfiguration) {
             this.instanceDirectory = 
instanceConfiguration.getInstanceDirectory();
@@ -182,7 +186,7 @@ public class SpawnedStandaloneNiFiInstanceFactory 
implements NiFiInstanceFactory
             if (!destinationCertsDir.exists()) {
                 assertTrue(destinationCertsDir.mkdirs());
             }
-            NiFiSystemKeyStoreProvider.configureKeyStores(destinationCertsDir);
+            sslContext = 
NiFiSystemKeyStoreProvider.configureKeyStores(destinationCertsDir);
 
             final File flowJsonGz = instanceConfiguration.getFlowJsonGz();
             if (flowJsonGz != null) {
@@ -190,22 +194,28 @@ public class SpawnedStandaloneNiFiInstanceFactory 
implements NiFiInstanceFactory
                 Files.copy(flowJsonGz.toPath(), 
destinationFlowJsonGz.toPath());
             }
 
-            // Write out any Property overrides
+            final Map<String, String> overrides = new HashMap<>();
+            overrides.put(NiFiProperties.SECURITY_KEYSTORE_PASSWD, 
NiFiSystemKeyStoreProvider.getProtectionParameter());
+            overrides.put(NiFiProperties.SECURITY_KEY_PASSWD, 
NiFiSystemKeyStoreProvider.getProtectionParameter());
+            overrides.put(NiFiProperties.SECURITY_TRUSTSTORE_PASSWD, 
NiFiSystemKeyStoreProvider.getProtectionParameter());
+
             final Map<String, String> nifiPropertiesOverrides = 
instanceConfiguration.getNifiPropertiesOverrides();
-            if (nifiPropertiesOverrides != null && 
!nifiPropertiesOverrides.isEmpty()) {
-                final File destinationNifiProperties = new 
File(destinationConf, "nifi.properties");
-                final File sourceNifiProperties = new 
File(bootstrapConfigFile.getParentFile(), "nifi.properties");
+            if (nifiPropertiesOverrides != null) {
+                overrides.putAll(nifiPropertiesOverrides);
+            }
 
-                final Properties nifiProperties = new Properties();
-                try (final InputStream fis = new 
FileInputStream(sourceNifiProperties)) {
-                    nifiProperties.load(fis);
-                }
+            final File destinationNifiProperties = new File(destinationConf, 
"nifi.properties");
+            final File sourceNifiProperties = new 
File(bootstrapConfigFile.getParentFile(), "nifi.properties");
+
+            final Properties nifiProperties = new Properties();
+            try (final InputStream fis = new 
FileInputStream(sourceNifiProperties)) {
+                nifiProperties.load(fis);
+            }
 
-                nifiPropertiesOverrides.forEach(nifiProperties::setProperty);
+            overrides.forEach(nifiProperties::setProperty);
 
-                try (final OutputStream fos = new 
FileOutputStream(destinationNifiProperties)) {
-                    nifiProperties.store(fos, null);
-                }
+            try (final OutputStream fos = new 
FileOutputStream(destinationNifiProperties)) {
+                nifiProperties.store(fos, null);
             }
         }
 
@@ -321,6 +331,11 @@ public class SpawnedStandaloneNiFiInstanceFactory 
implements NiFiInstanceFactory
             return null;
         }
 
+        @Override
+        public Optional<SSLContext> getSslContext() {
+            return Optional.of(sslContext);
+        }
+
         @Override
         public Properties getProperties() throws IOException {
             final File nifiPropsFile = new File(configDir, "nifi.properties");
@@ -378,41 +393,19 @@ public class SpawnedStandaloneNiFiInstanceFactory 
implements NiFiInstanceFactory
 
         public NiFiClient createClient() throws IOException {
             final Properties nifiProperties = getProperties();
-            final String httpPort = 
nifiProperties.getProperty("nifi.web.http.port");
             final String httpsPort = 
nifiProperties.getProperty("nifi.web.https.port");
-            final String webPort = (httpsPort == null || 
httpsPort.trim().isEmpty()) ? httpPort : httpsPort;
-
-            final String keystoreType = 
nifiProperties.getProperty("nifi.security.keystoreType");
-            final String truststoreType = 
nifiProperties.getProperty("nifi.security.truststoreType");
+            final String baseUrl = "https://localhost:%s".formatted(httpsPort);
 
             final NiFiClientConfig clientConfig = new 
NiFiClientConfig.Builder()
-                    .baseUrl("http://localhost:"; + webPort)
-                    .connectTimeout(30000)
+                    .baseUrl(baseUrl)
+                    .connectTimeout(15000)
                     .readTimeout(30000)
-                    
.keystoreFilename(getAbsolutePath(nifiProperties.getProperty("nifi.security.keystore")))
-                    
.keystorePassword(nifiProperties.getProperty("nifi.security.keystorePasswd"))
-                    .keystoreType(keystoreType == null ? null : 
KeystoreType.valueOf(keystoreType))
-                    
.truststoreFilename(getAbsolutePath(nifiProperties.getProperty("nifi.security.truststore")))
-                    
.truststorePassword(nifiProperties.getProperty("nifi.security.truststorePasswd"))
-                    .truststoreType(truststoreType == null ? null : 
KeystoreType.valueOf(truststoreType))
+                    .sslContext(sslContext)
                     .build();
 
             return new JerseyNiFiClient.Builder()
                     .config(clientConfig)
                     .build();
         }
-
-        private String getAbsolutePath(final String filename) {
-            if (filename == null) {
-                return null;
-            }
-
-            final File file = new File(filename);
-            if (file.isAbsolute()) {
-                return file.getAbsolutePath();
-            }
-
-            return new File(instanceDirectory, 
file.getPath()).getAbsolutePath();
-        }
     }
 }
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/clustering/RestartWithDifferentPortIT.java
 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/clustering/RestartWithDifferentPortIT.java
index 9966895f26..b4f1390b18 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/clustering/RestartWithDifferentPortIT.java
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/clustering/RestartWithDifferentPortIT.java
@@ -57,8 +57,8 @@ public class RestartWithDifferentPortIT extends NiFiSystemIT {
         final NiFiInstance secondNode = getNiFiInstance().getNodeInstance(2);
         secondNode.stop();
 
-        // Change the value of the nifi.web.http.port property from 5672 to 
5673
-        secondNode.setProperty("nifi.web.http.port", "5673");
+        // Change the value of the nifi.web.https.port property from 5672 to 
5673
+        secondNode.setProperty("nifi.web.https.port", "5673");
 
         // Restart the second node
         secondNode.start();
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/authorizers.xml
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/authorizers.xml
new file mode 100644
index 0000000000..5442525804
--- /dev/null
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/authorizers.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  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.
+-->
+<authorizers>
+    <authorizer>
+        <identifier>system-test-authorizer</identifier>
+        <class>org.apache.nifi.authorization.SystemTestAuthorizer</class>
+    </authorizer>
+</authorizers>
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/nifi.properties
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/nifi.properties
index 3ef42c2f32..7f6fc82802 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/nifi.properties
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node1/nifi.properties
@@ -130,8 +130,8 @@ 
nifi.nar.persistence.provider.properties.directory=./nar_repository
 nifi.asset.manager.properties.directory=./assets
 
 # Site to Site properties
-nifi.remote.input.host=
-nifi.remote.input.secure=false
+nifi.remote.input.host=localhost
+nifi.remote.input.secure=true
 nifi.remote.input.socket.port=7781
 nifi.remote.input.http.enabled=true
 nifi.remote.input.http.transaction.ttl=30 sec
@@ -140,10 +140,10 @@ nifi.remote.contents.cache.expiration=30 secs
 # web properties #
 nifi.web.war.directory=./lib
 nifi.web.http.host=
-nifi.web.http.port=5671
+nifi.web.http.port=
 nifi.web.http.network.interface.default=
-nifi.web.https.host=
-nifi.web.https.port=
+nifi.web.https.host=localhost
+nifi.web.https.port=5671
 nifi.web.https.network.interface.default=
 nifi.web.jetty.working.directory=./work/jetty
 nifi.web.jetty.threads=200
@@ -157,12 +157,12 @@ nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
 
 nifi.security.keystore=certs/keystore.p12
 nifi.security.keystoreType=PKCS12
-nifi.security.keystorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.keyPasswd=NiFiSystemKeyStoreProvider
+nifi.security.keystorePasswd=
+nifi.security.keyPasswd=
 nifi.security.truststore=certs/truststore.p12
 nifi.security.truststoreType=PKCS12
-nifi.security.truststorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.user.authorizer=managed-authorizer
+nifi.security.truststorePasswd=
+nifi.security.user.authorizer=system-test-authorizer
 nifi.security.user.login.identity.provider=
 nifi.security.ocsp.responder.url=
 nifi.security.ocsp.responder.certificate=
@@ -197,7 +197,7 @@ nifi.security.user.oidc.preferred.jwsalgorithm=
 
 # cluster common properties (all nodes must have same values) #
 nifi.cluster.protocol.heartbeat.interval=2 sec
-nifi.cluster.protocol.is.secure=false
+nifi.cluster.protocol.is.secure=true
 
 # cluster node properties (only configure for cluster nodes) #
 nifi.cluster.is.node=true
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/authorizers.xml
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/authorizers.xml
new file mode 100644
index 0000000000..5442525804
--- /dev/null
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/authorizers.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  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.
+-->
+<authorizers>
+    <authorizer>
+        <identifier>system-test-authorizer</identifier>
+        <class>org.apache.nifi.authorization.SystemTestAuthorizer</class>
+    </authorizer>
+</authorizers>
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/nifi.properties
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/nifi.properties
index 74e7a3595b..6b3df6197d 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/nifi.properties
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/clustered/node2/nifi.properties
@@ -130,8 +130,8 @@ 
nifi.nar.persistence.provider.properties.directory=./nar_repository
 nifi.asset.manager.properties.directory=./assets
 
 # Site to Site properties
-nifi.remote.input.host=
-nifi.remote.input.secure=false
+nifi.remote.input.host=localhost
+nifi.remote.input.secure=true
 nifi.remote.input.socket.port=7782
 nifi.remote.input.http.enabled=true
 nifi.remote.input.http.transaction.ttl=30 sec
@@ -140,10 +140,10 @@ nifi.remote.contents.cache.expiration=30 secs
 # web properties #
 nifi.web.war.directory=./lib
 nifi.web.http.host=
-nifi.web.http.port=5672
+nifi.web.http.port=
 nifi.web.http.network.interface.default=
-nifi.web.https.host=
-nifi.web.https.port=
+nifi.web.https.host=localhost
+nifi.web.https.port=5672
 nifi.web.https.network.interface.default=
 nifi.web.jetty.working.directory=./work/jetty
 nifi.web.jetty.threads=200
@@ -157,12 +157,12 @@ nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
 
 nifi.security.keystore=certs/keystore.p12
 nifi.security.keystoreType=PKCS12
-nifi.security.keystorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.keyPasswd=NiFiSystemKeyStoreProvider
+nifi.security.keystorePasswd=
+nifi.security.keyPasswd=
 nifi.security.truststore=certs/truststore.p12
 nifi.security.truststoreType=PKCS12
-nifi.security.truststorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.user.authorizer=managed-authorizer
+nifi.security.truststorePasswd=
+nifi.security.user.authorizer=system-test-authorizer
 nifi.security.user.login.identity.provider=
 nifi.security.ocsp.responder.url=
 nifi.security.ocsp.responder.certificate=
@@ -197,7 +197,7 @@ nifi.security.user.oidc.preferred.jwsalgorithm=
 
 # cluster common properties (all nodes must have same values) #
 nifi.cluster.protocol.heartbeat.interval=2 sec
-nifi.cluster.protocol.is.secure=false
+nifi.cluster.protocol.is.secure=true
 
 # cluster node properties (only configure for cluster nodes) #
 nifi.cluster.is.node=true
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/authorizers.xml
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/authorizers.xml
new file mode 100644
index 0000000000..5442525804
--- /dev/null
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/authorizers.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  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.
+-->
+<authorizers>
+    <authorizer>
+        <identifier>system-test-authorizer</identifier>
+        <class>org.apache.nifi.authorization.SystemTestAuthorizer</class>
+    </authorizer>
+</authorizers>
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/nifi.properties
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/nifi.properties
index 3576381fbc..5bfb6ebca3 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/nifi.properties
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/default/nifi.properties
@@ -131,8 +131,8 @@ 
nifi.nar.persistence.provider.properties.directory=./nar_repository
 nifi.asset.manager.properties.directory=./assets
 
 # Site to Site properties
-nifi.remote.input.host=
-nifi.remote.input.secure=false
+nifi.remote.input.host=localhost
+nifi.remote.input.secure=true
 nifi.remote.input.socket.port=7780
 nifi.remote.input.http.enabled=true
 nifi.remote.input.http.transaction.ttl=30 sec
@@ -141,10 +141,10 @@ nifi.remote.contents.cache.expiration=30 secs
 # web properties #
 nifi.web.war.directory=./lib
 nifi.web.http.host=
-nifi.web.http.port=5670
+nifi.web.http.port=
 nifi.web.http.network.interface.default=
-nifi.web.https.host=
-nifi.web.https.port=
+nifi.web.https.host=localhost
+nifi.web.https.port=5670
 nifi.web.https.network.interface.default=
 nifi.web.jetty.working.directory=./work/jetty
 nifi.web.jetty.threads=200
@@ -158,12 +158,12 @@ nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
 
 nifi.security.keystore=certs/keystore.p12
 nifi.security.keystoreType=PKCS12
-nifi.security.keystorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.keyPasswd=NiFiSystemKeyStoreProvider
+nifi.security.keystorePasswd=
+nifi.security.keyPasswd=
 nifi.security.truststore=certs/truststore.p12
 nifi.security.truststoreType=PKCS12
-nifi.security.truststorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.user.authorizer=managed-authorizer
+nifi.security.truststorePasswd=
+nifi.security.user.authorizer=system-test-authorizer
 nifi.security.user.login.identity.provider=
 nifi.security.ocsp.responder.url=
 nifi.security.ocsp.responder.certificate=
@@ -198,7 +198,7 @@ nifi.security.user.oidc.preferred.jwsalgorithm=
 
 # cluster common properties (all nodes must have same values) #
 nifi.cluster.protocol.heartbeat.interval=5 sec
-nifi.cluster.protocol.is.secure=false
+nifi.cluster.protocol.is.secure=true
 
 # cluster node properties (only configure for cluster nodes) #
 nifi.cluster.is.node=false
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/authorizers.xml
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/authorizers.xml
new file mode 100644
index 0000000000..5442525804
--- /dev/null
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/authorizers.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  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.
+-->
+<authorizers>
+    <authorizer>
+        <identifier>system-test-authorizer</identifier>
+        <class>org.apache.nifi.authorization.SystemTestAuthorizer</class>
+    </authorizer>
+</authorizers>
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/logback.xml
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/logback.xml
index d387a430b8..a46edc5e07 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/logback.xml
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/logback.xml
@@ -100,6 +100,8 @@
     <logger name="org.apache.nifi.processors.standard.LogMessage" 
level="INFO"/>
     <logger 
name="org.apache.nifi.controller.repository.StandardProcessSession" 
level="WARN" />
 
+    <!-- Py4J set to WARN to avoid verbose socket communication messages -->
+    <logger name="py4j" level="WARN" />
 
     <logger name="org.apache.zookeeper.ClientCnxn" level="ERROR" />
     <logger name="org.apache.zookeeper.server.NIOServerCnxn" level="ERROR" />
diff --git 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/nifi.properties
 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/nifi.properties
index 0fdfa37765..a0199e7c12 100644
--- 
a/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/nifi.properties
+++ 
b/nifi-system-tests/nifi-system-test-suite/src/test/resources/conf/pythonic/nifi.properties
@@ -18,7 +18,7 @@
 #
 
 # Core Properties #
-nifi.flow.configuration.file=./conf/flow.xml.gz
+nifi.flow.configuration.file=./conf/flow.json.gz
 nifi.flow.configuration.archive.enabled=true
 nifi.flow.configuration.archive.dir=./conf/archive/
 nifi.flow.configuration.archive.max.time=30 days
@@ -135,8 +135,8 @@ 
nifi.nar.persistence.provider.properties.directory=./nar_repository
 nifi.asset.manager.properties.directory=./assets
 
 # Site to Site properties
-nifi.remote.input.host=
-nifi.remote.input.secure=false
+nifi.remote.input.host=localhost
+nifi.remote.input.secure=true
 nifi.remote.input.socket.port=7780
 nifi.remote.input.http.enabled=true
 nifi.remote.input.http.transaction.ttl=30 sec
@@ -145,10 +145,10 @@ nifi.remote.contents.cache.expiration=30 secs
 # web properties #
 nifi.web.war.directory=./lib
 nifi.web.http.host=
-nifi.web.http.port=5670
+nifi.web.http.port=
 nifi.web.http.network.interface.default=
-nifi.web.https.host=
-nifi.web.https.port=
+nifi.web.https.host=localhost
+nifi.web.https.port=5670
 nifi.web.https.network.interface.default=
 nifi.web.jetty.working.directory=./work/jetty
 nifi.web.jetty.threads=200
@@ -162,12 +162,12 @@ nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
 
 nifi.security.keystore=certs/keystore.p12
 nifi.security.keystoreType=PKCS12
-nifi.security.keystorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.keyPasswd=NiFiSystemKeyStoreProvider
+nifi.security.keystorePasswd=
+nifi.security.keyPasswd=
 nifi.security.truststore=certs/truststore.p12
 nifi.security.truststoreType=PKCS12
-nifi.security.truststorePasswd=NiFiSystemKeyStoreProvider
-nifi.security.user.authorizer=managed-authorizer
+nifi.security.truststorePasswd=
+nifi.security.user.authorizer=system-test-authorizer
 nifi.security.user.login.identity.provider=
 nifi.security.ocsp.responder.url=
 nifi.security.ocsp.responder.certificate=
diff --git a/nifi-system-tests/pom.xml b/nifi-system-tests/pom.xml
index 5ead4f18b3..aeea7a6673 100644
--- a/nifi-system-tests/pom.xml
+++ b/nifi-system-tests/pom.xml
@@ -25,6 +25,7 @@
     <packaging>pom</packaging>
 
     <modules>
+        <module>nifi-system-test-authorizer-bundle</module>
         <module>nifi-system-test-extensions-bundle</module>
         <module>nifi-system-test-extensions2-bundle</module>
         <module>nifi-alternate-config-extensions-bundle</module>

Reply via email to