Kevin Doran created MINIFI-537:
----------------------------------

             Summary: Possible NullPointerException in BootstrapTransformer
                 Key: MINIFI-537
                 URL: https://issues.apache.org/jira/browse/MINIFI-537
             Project: Apache NiFi MiNiFi
          Issue Type: New Feature
            Reporter: Kevin Doran


[https://github.com/apache/nifi-minifi/pull/167] introduced the ability to 
override security properties and sensitive properties in bootstrap.conf

When using this feature, there is a potential NPE that prevents MiNiFi from 
starting.

Steps to reproduce:

In bootstrap.conf set any of the SSL/TLS properties, for example:

 
{noformat}
nifi.minifi.security.keystoreType=jus{noformat}
Leave this unset / blank:

 

 
{noformat}
nifi.minifi.sensitive.props.key={noformat}
 

 

Start minifi and observe the following in app.log:
{noformat}
2020-08-27 10:12:10,877 INFO [main] o.a.n.m.bootstrap.util.ConfigTransformer 
Bootstrap flow override: Replaced security properties2020-08-27 10:12:10,877 
INFO [main] o.a.n.m.bootstrap.util.ConfigTransformer Bootstrap flow override: 
Replaced security properties2020-08-27 10:12:10,881 ERROR [main] 
o.apache.nifi.minifi.bootstrap.RunMiNiFi The config file is malformed, unable 
to 
start.org.apache.nifi.minifi.bootstrap.configuration.ConfigurationChangeException:
 Failed to parse the config YAML while creating the nifi.properties at 
org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.writeNiFiProperties(ConfigTransformer.java:290)
 at 
org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.transformConfigFile(ConfigTransformer.java:120)
 at 
org.apache.nifi.minifi.bootstrap.RunMiNiFi.performTransformation(RunMiNiFi.java:1712)
 at org.apache.nifi.minifi.bootstrap.RunMiNiFi.start(RunMiNiFi.java:1180) at 
org.apache.nifi.minifi.bootstrap.RunMiNiFi.main(RunMiNiFi.java:244)Caused by: 
java.lang.NullPointerException: null at 
java.util.Hashtable.put(Hashtable.java:460) at 
org.apache.nifi.minifi.bootstrap.util.OrderedProperties.put(OrderedProperties.java:45)
 at java.util.Properties.setProperty(Properties.java:166) at 
org.apache.nifi.minifi.bootstrap.util.OrderedProperties.setProperty(OrderedProperties.java:62)
 at 
org.apache.nifi.minifi.bootstrap.util.ConfigTransformer.writeNiFiProperties(ConfigTransformer.java:260)
 ... 4 common frames omitted{noformat}
This is because when SecurityPropertiesSchema is created (caused by the 
override properties in bootstrap.conf), the nested SensitivePropsSchema is 
created, but initialized with a null key. This causes the NPE when this 
property is accessed later (unchecked) in ConfigTransformer.writeNiFiProperties.

I think the best solution here is to always initialize SensitivePropsSchema.key 
to its default value (empty string) which is what happens when it is created 
normally without the bootstrap.conf overrides.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to