XML property enhancements

In order to configure xml property files, dot notation is leveraged in order to represent the actual schema for a given property file. This allows users to enhance or overwrite xml based properties in Cloudera Manager using. The structure for naming is as follows:

xml.<properties-type>.<entity>.<identifier>.class
xml.<properties-type>.<entity>.<identifier>.property.<property-value>

Supported properties types for NiFi are authorizers (authorizers.xml) and loginIdentityProviders (used in login-identity-providers.xml). For NiFi Registry supported types are authorizers and identityProviders.

The below property key/value example creates a user group provider entry into the authorizers file for NiFi:

Name: xml.authorizers.userGroupProvider.file-user-group-provider.class
Value: org.apache.nifi.authorization.FileUserGroupProvider

Name: xml.authorizers.userGroupProvider.file-user-group-provider.property.Initial User Identity 2 
Value: CN=localhost, OU=NIFI

This translates to the following entry in the generated authorizers.xml file:

<authorizers>
…...
    <userGroupProvider>
        <identifier>file-user-group-provider</identifier>
        <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
        <property name="Initial User Identity 2">CN=localhost, OU=NIFI</property>
    </userGroupProvider>
…
...
</authorizers>

Properties names that have spaces are supported and do not need to be escaped.