This is an automated email from the ASF dual-hosted git repository.
mattyb149 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/master by this push:
new a9d1dd7 NIFI-6337 Resolved groovy unit test execution problems in
nifi-properties-loader and fixed failing unit tests.
a9d1dd7 is described below
commit a9d1dd7b08f7d7a9ab7056393e042dc984e817ba
Author: Andy LoPresto <[email protected]>
AuthorDate: Thu May 30 17:46:12 2019 -0700
NIFI-6337 Resolved groovy unit test execution problems in
nifi-properties-loader and fixed failing unit tests.
Signed-off-by: Matthew Burgess <[email protected]>
This closes #3508
---
.../nifi-framework/nifi-properties-loader/pom.xml | 27 ++++++++++++-
.../AESSensitivePropertyProviderTest.groovy | 10 ++---
.../NiFiPropertiesLoaderGroovyTest.groovy | 44 +++++++++++-----------
.../unreadable_bootstrap/bootstrap.conf | 0
...nsitive_properties_protected_aes_128.properties | 2 +-
5 files changed, 54 insertions(+), 29 deletions(-)
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/pom.xml
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/pom.xml
index 8b4b970..6b10e61 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/pom.xml
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/pom.xml
@@ -1,4 +1,5 @@
-<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">
+<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">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -47,4 +48,28 @@
<artifactId>commons-lang3</artifactId>
</dependency>
</dependencies>
+ <build>
+ <!-- Required to run Groovy tests without any Java tests -->
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.5</version>
+ <executions>
+ <execution>
+ <id>add-test-source</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>add-test-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>src/test/groovy</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
\ No newline at end of file
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/AESSensitivePropertyProviderTest.groovy
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/AESSensitivePropertyProviderTest.groovy
index 73ae55a..56a702a 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/AESSensitivePropertyProviderTest.groovy
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/AESSensitivePropertyProviderTest.groovy
@@ -17,7 +17,6 @@
package org.apache.nifi.properties
import org.bouncycastle.jce.provider.BouncyCastleProvider
-import org.bouncycastle.util.encoders.DecoderException
import org.bouncycastle.util.encoders.Hex
import org.junit.After
import org.junit.Assume
@@ -302,9 +301,10 @@ class AESSensitivePropertyProviderTest extends
GroovyTestCase {
SensitivePropertyProvider spp = new
AESSensitivePropertyProvider(Hex.decode(getKeyOfSize(keySize)))
logger.info("Initialized ${spp.name} with key size ${keySize}")
String cipherText = spp.protect(PLAINTEXT)
+
// Remove the IV from the "complete" cipher text
final String MISSING_IV_CIPHER_TEXT = cipherText[18..-1]
- logger.info("Manipulated ${cipherText}
to\n${MISSING_IV_CIPHER_TEXT.padLeft(163)}")
+ logger.info("Manipulated ${cipherText}
to\n${MISSING_IV_CIPHER_TEXT.padLeft(172)}")
def msg = shouldFail(IllegalArgumentException) {
spp.unprotect(MISSING_IV_CIPHER_TEXT)
@@ -313,9 +313,9 @@ class AESSensitivePropertyProviderTest extends
GroovyTestCase {
// Remove the IV from the "complete" cipher text but keep the
delimiter
final String MISSING_IV_CIPHER_TEXT_WITH_DELIMITER =
cipherText[16..-1]
- logger.info("Manipulated ${cipherText}
to\n${MISSING_IV_CIPHER_TEXT_WITH_DELIMITER.padLeft(163)}")
+ logger.info("Manipulated ${cipherText}
to\n${MISSING_IV_CIPHER_TEXT_WITH_DELIMITER.padLeft(172)}")
- def msgWithDelimiter = shouldFail(DecoderException) {
+ def msgWithDelimiter = shouldFail(IllegalArgumentException) {
spp.unprotect(MISSING_IV_CIPHER_TEXT_WITH_DELIMITER)
}
logger.expected("${msgWithDelimiter} for keySize ${keySize} and
cipher text [${MISSING_IV_CIPHER_TEXT_WITH_DELIMITER}]")
@@ -324,7 +324,7 @@ class AESSensitivePropertyProviderTest extends
GroovyTestCase {
assert msg == "The cipher text does not contain the delimiter ||
-- it should be of the form Base64(IV) || Base64(cipherText)"
// Assert
- assert msgWithDelimiter =~ "unable to decode base64 string"
+ assert msgWithDelimiter == "The IV (0 bytes) must be at least 12
bytes"
}
}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/NiFiPropertiesLoaderGroovyTest.groovy
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/NiFiPropertiesLoaderGroovyTest.groovy
index 980f86f..53f4070 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/NiFiPropertiesLoaderGroovyTest.groovy
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/groovy/org/apache/nifi/properties/NiFiPropertiesLoaderGroovyTest.groovy
@@ -67,7 +67,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase {
}
@BeforeClass
- public static void setUpOnce() throws Exception {
+ static void setUpOnce() throws Exception {
Security.addProvider(new BouncyCastleProvider())
logger.metaClass.methodMissing = { String name, args ->
@@ -76,11 +76,11 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Before
- public void setUp() throws Exception {
+ void setUp() throws Exception {
}
@After
- public void tearDown() throws Exception {
+ void tearDown() throws Exception {
// Clear the sensitive property providers between runs
// if (ProtectedNiFiProperties.@localProviderCache) {
// ProtectedNiFiProperties.@localProviderCache = [:]
@@ -89,14 +89,14 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@AfterClass
- public static void tearDownOnce() {
+ static void tearDownOnce() {
if (originalPropertiesPath) {
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
originalPropertiesPath)
}
}
@Test
- public void testConstructorShouldCreateNewInstance() throws Exception {
+ void testConstructorShouldCreateNewInstance() throws Exception {
// Arrange
// Act
@@ -108,7 +108,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldCreateInstanceWithKey() throws Exception {
+ void testShouldCreateInstanceWithKey() throws Exception {
// Arrange
// Act
@@ -120,7 +120,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldGetDefaultProviderKey() throws Exception {
+ void testShouldGetDefaultProviderKey() throws Exception {
// Arrange
final String EXPECTED_PROVIDER_KEY =
"aes/gcm/${Cipher.getMaxAllowedKeyLength("AES") > 128 ? 256 : 128}"
logger.info("Expected provider key: ${EXPECTED_PROVIDER_KEY}")
@@ -133,7 +133,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldInitializeSensitivePropertyProviderFactory() throws
Exception {
+ void testShouldInitializeSensitivePropertyProviderFactory() throws
Exception {
// Arrange
NiFiPropertiesLoader niFiPropertiesLoader = new NiFiPropertiesLoader()
@@ -145,7 +145,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldLoadUnprotectedPropertiesFromFile() throws Exception
{
+ void testShouldLoadUnprotectedPropertiesFromFile() throws Exception {
// Arrange
File unprotectedFile = new
File("src/test/resources/conf/nifi.properties")
NiFiPropertiesLoader niFiPropertiesLoader = new NiFiPropertiesLoader()
@@ -161,7 +161,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotLoadUnprotectedPropertiesFromNullFile() throws
Exception {
+ void testShouldNotLoadUnprotectedPropertiesFromNullFile() throws Exception
{
// Arrange
NiFiPropertiesLoader niFiPropertiesLoader = new NiFiPropertiesLoader()
@@ -176,7 +176,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotLoadUnprotectedPropertiesFromMissingFile() throws
Exception {
+ void testShouldNotLoadUnprotectedPropertiesFromMissingFile() throws
Exception {
// Arrange
File missingFile = new
File("src/test/resources/conf/nifi_missing.properties")
assert !missingFile.exists()
@@ -194,7 +194,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotLoadUnprotectedPropertiesFromUnreadableFile()
throws Exception {
+ void testShouldNotLoadUnprotectedPropertiesFromUnreadableFile() throws
Exception {
// Arrange
File unreadableFile = new
File("src/test/resources/conf/nifi_no_permissions.properties")
Files.setPosixFilePermissions(unreadableFile.toPath(), [] as Set)
@@ -216,7 +216,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldLoadUnprotectedPropertiesFromPath() throws Exception
{
+ void testShouldLoadUnprotectedPropertiesFromPath() throws Exception {
// Arrange
File unprotectedFile = new
File("src/test/resources/conf/nifi.properties")
NiFiPropertiesLoader niFiPropertiesLoader = new NiFiPropertiesLoader()
@@ -232,7 +232,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldLoadUnprotectedPropertiesFromProtectedFile() throws
Exception {
+ void testShouldLoadUnprotectedPropertiesFromProtectedFile() throws
Exception {
// Arrange
File protectedFile = new
File("src/test/resources/conf/nifi_with_sensitive_properties_protected_aes.properties")
NiFiPropertiesLoader niFiPropertiesLoader =
NiFiPropertiesLoader.withKey(KEY_HEX)
@@ -272,7 +272,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldExtractKeyFromBootstrapFile() throws Exception {
+ void testShouldExtractKeyFromBootstrapFile() throws Exception {
// Arrange
def defaultNiFiPropertiesFilePath =
"src/test/resources/bootstrap_tests/conf/nifi.properties"
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
defaultNiFiPropertiesFilePath)
@@ -285,7 +285,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotExtractKeyFromBootstrapFileWithoutKeyLine()
throws Exception {
+ void testShouldNotExtractKeyFromBootstrapFileWithoutKeyLine() throws
Exception {
// Arrange
def defaultNiFiPropertiesFilePath =
"src/test/resources/bootstrap_tests/missing_key_line/nifi.properties"
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
defaultNiFiPropertiesFilePath)
@@ -298,7 +298,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotExtractKeyFromBootstrapFileWithoutKey() throws
Exception {
+ void testShouldNotExtractKeyFromBootstrapFileWithoutKey() throws Exception
{
// Arrange
def defaultNiFiPropertiesFilePath =
"src/test/resources/bootstrap_tests/missing_key_line/nifi.properties"
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
defaultNiFiPropertiesFilePath)
@@ -311,7 +311,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotExtractKeyFromMissingBootstrapFile() throws
Exception {
+ void testShouldNotExtractKeyFromMissingBootstrapFile() throws Exception {
// Arrange
def defaultNiFiPropertiesFilePath =
"src/test/resources/bootstrap_tests/missing_bootstrap/nifi.properties"
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
defaultNiFiPropertiesFilePath)
@@ -327,7 +327,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldNotExtractKeyFromUnreadableBootstrapFile() throws
Exception {
+ void testShouldNotExtractKeyFromUnreadableBootstrapFile() throws Exception
{
// Arrange
File unreadableFile = new
File("src/test/resources/bootstrap_tests/unreadable_bootstrap/bootstrap.conf")
Set<PosixFilePermission> originalPermissions =
Files.getPosixFilePermissions(unreadableFile.toPath())
@@ -352,7 +352,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
@Ignore("Unreadable conf directory breaks build")
@Test
- public void testShouldNotExtractKeyFromUnreadableConfDir() throws
Exception {
+ void testShouldNotExtractKeyFromUnreadableConfDir() throws Exception {
// Arrange
File unreadableDir = new
File("src/test/resources/bootstrap_tests/unreadable_conf")
Set<PosixFilePermission> originalPermissions =
Files.getPosixFilePermissions(unreadableDir.toPath())
@@ -376,7 +376,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void
testShouldLoadUnprotectedPropertiesFromProtectedDefaultFileAndUseBootstrapKey()
throws Exception {
+ void
testShouldLoadUnprotectedPropertiesFromProtectedDefaultFileAndUseBootstrapKey()
throws Exception {
// Arrange
File protectedFile = new
File("src/test/resources/bootstrap_tests/conf/nifi_with_sensitive_properties_protected_aes.properties")
System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
protectedFile.path)
@@ -402,7 +402,7 @@ class NiFiPropertiesLoaderGroovyTest extends GroovyTestCase
{
}
@Test
- public void testShouldUpdateKeyInFactory() throws Exception {
+ void testShouldUpdateKeyInFactory() throws Exception {
// Arrange
File originalKeyFile = new
File("src/test/resources/conf/nifi_with_sensitive_properties_protected_aes_128.properties")
File passwordKeyFile = new
File("src/test/resources/conf/nifi_with_sensitive_properties_protected_aes_128_password.properties")
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/resources/bootstrap_tests/unreadable_bootstrap/bootstrap.conf
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/resources/bootstrap_tests/unreadable_bootstrap/bootstrap.conf
old mode 100755
new mode 100644
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/resources/conf/nifi_with_sensitive_properties_protected_aes_128.properties
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/resources/conf/nifi_with_sensitive_properties_protected_aes_128.properties
index 25e8ce2..6d1e541 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/resources/conf/nifi_with_sensitive_properties_protected_aes_128.properties
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/test/resources/conf/nifi_with_sensitive_properties_protected_aes_128.properties
@@ -74,7 +74,7 @@
nifi.sensitive.props.key=6WUpex+VZiN05LXu||joWJMuoSzYniEC7IAoingTimlG7+RGk8I2irl
nifi.sensitive.props.key.protected=aes/gcm/128
nifi.sensitive.props.algorithm=PBEWITHMD5AND256BITAES-CBC-OPENSSL
nifi.sensitive.props.provider=BC
-nifi.sensitive.props.additional.keys=nifi.ui.banner.text
+nifi.sensitive.props.additional.keys=nifi.ui.banner.text, nifi.version
nifi.security.keystore=/path/to/keystore.jks
nifi.security.keystoreType=JKS