nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-properties-loader/pom.xml

74 lines
3.2 KiB
XML
Raw Normal View History

<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
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.
-->
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework</artifactId>
<version>1.14.0-SNAPSHOT</version>
</parent>
<artifactId>nifi-properties-loader</artifactId>
<name>nifi-properties-loader</name>
<description>Handles the loading of the nifi.properties file to an instance of NiFiProperties, and transparently
performs any decryption/retrieval of sensitive configuration properties.
</description>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-properties</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
NIFI-3834 This closes #3821. Added encrypted content repository implementation. Added skeleton implementation of EncryptedFileSystemRepository. Added new impl to META-INF registry. Added investigation comments to FileSystemRepository. Implemented RepositoryObject block and stream encryptors. Added passing unit test for encryption and decryption of multiple content writes (large buffered file) for AES-CTR encryptor. Refactored shared logic from AES CTR and G/CM encryptors to abstract parent. Added working unit test for writing/reading via encrypted file system repository. Added stream wrappers. Added encryptor. Added working unit test for writing/reading multiple pieces of content via encrypted file system repository. Added unit test skeleton for writing/reading multiple pieces of content with different keys via encrypted file system repository. Implemented key management skeleton for encrypted content repository. Multiple content claims can now be encrypted with different keys on the same resource claim and retrieved. Implemented validation on setting active key id. Added content repository encryption properties to NiFiProperties. Implemented configuration of encryption services from NiFiProperties. Refactored NiFiPropertiesLoader functionality to CryptoUtils for availability in other modules. Added RepositoryEncryptionConfiguration and repo-specific subclasses for data containers. Continued refactoring of CryptoUtils and RepositoryEncryptorUtils library methods. Exposed some internal state of FileSystemRepository via protected getters so encrypted implementation could access. Refactored EncryptedFileSystemRepository to extend rather than duplicate FSR. Refactored EFSR to use ECROS which now extends extracted ContentRepositoryOutputStream protected inner class in FSR. Added unit test to encrypt & decrypt image resource. Added smaller image resource for easier unit test debugging. Added importFrom method to resolve issue where GetFile would not encrypt content persisted to repository. Added text test resource for tests around exporting claim subsets. Added exportTo methods to handle decrypting encrypted content. Performed large unit test refactoring, moving shared logic to helper methods. Added unit test for merged content claim with header/footer/demarcator. Added unit test for merging content claims each encrypted with a different key. Ignored non-deterministically failing firewall DNS test. Added documentation to User and Admin Guide for Encrypted Content Repository. Added image. Added refactored utility method for shared ROEM extraction and validation logic in AbstractAESEncryptor. Replaced ad-hoc generation of ciphertext stream and byte[] for testing with static initialization from pre-generated serialized form for performance. Cleaned up unused test code. Cleaned up Javadoc and code comments. Refactored shared logic. Fixed checkstyle issue. Fixed test failure due to error message change. Added experimental warning to repository implementation classes and User Guide documentation. Signed-off-by: Joe Witt <joewitt@apache.org>
2019-01-03 17:20:03 -05:00
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-security-utils</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>