diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java index 3e76de6aca..f16b88d168 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java @@ -18,6 +18,7 @@ package org.apache.nifi.cluster.spring; import java.io.File; +import org.apache.nifi.cluster.firewall.ClusterNodeFirewall; import org.apache.nifi.cluster.firewall.impl.FileBasedClusterNodeFirewall; import org.apache.nifi.util.NiFiProperties; import org.springframework.beans.factory.FactoryBean; @@ -25,18 +26,20 @@ import org.springframework.beans.factory.FactoryBean; /** * Factory bean for creating a singleton FileBasedClusterNodeFirewall instance. */ -public class FileBasedClusterNodeFirewallFactoryBean implements FactoryBean { +public class FileBasedClusterNodeFirewallFactoryBean implements FactoryBean { - private FileBasedClusterNodeFirewall firewall; + private ClusterNodeFirewall firewall; private NiFiProperties properties; @Override - public FileBasedClusterNodeFirewall getObject() throws Exception { + public ClusterNodeFirewall getObject() throws Exception { if (firewall == null) { final File config = properties.getClusterNodeFirewallFile(); final File restoreDirectory = properties.getRestoreDirectory(); - if (config != null) { + if (config == null) { + firewall = new PermitAllClusterNodeFirewall(); + } else { firewall = new FileBasedClusterNodeFirewall(config, restoreDirectory); } } @@ -44,8 +47,8 @@ public class FileBasedClusterNodeFirewallFactoryBean implements FactoryBean getObjectType() { - return FileBasedClusterNodeFirewall.class; + public Class getObjectType() { + return ClusterNodeFirewall.class; } @Override @@ -56,4 +59,12 @@ public class FileBasedClusterNodeFirewallFactoryBean implements FactoryBean objectType = factoryBean.getObjectType(); + assertEquals(ClusterNodeFirewall.class, objectType); + } + + @Test + public void testGetObjectClusterNodeFirewallFileNotConfigured() throws Exception { + final ClusterNodeFirewall clusterNodeFirewall = factoryBean.getObject(); + assertNotNull(clusterNodeFirewall); + } + + @Test + public void testGetObjectClusterNodeFirewallFileConfigured() throws Exception { + final File firewallProperties = File.createTempFile(FileBasedClusterNodeFirewallFactoryBeanTest.class.getName(), PROPERTIES_SUFFIX); + firewallProperties.deleteOnExit(); + + final Map beanProperties = new HashMap<>(); + beanProperties.put(NiFiProperties.CLUSTER_FIREWALL_FILE, firewallProperties.getAbsolutePath()); + properties = NiFiProperties.createBasicNiFiProperties(StringUtils.EMPTY, beanProperties); + factoryBean.setProperties(properties); + + final ClusterNodeFirewall clusterNodeFirewall = factoryBean.getObject(); + assertNotNull(clusterNodeFirewall); + assertEquals(FileBasedClusterNodeFirewall.class, clusterNodeFirewall.getClass()); + } +}