[
https://issues.apache.org/jira/browse/NIFI-5147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16598355#comment-16598355
]
ASF GitHub Bot commented on NIFI-5147:
--------------------------------------
GitHub user alopresto opened a pull request:
https://github.com/apache/nifi/pull/2980
NIFI-5147 Implement CalculateAttributeHash processor
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?
- [x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number
you are trying to resolve? Pay particular attention to the hyphen "-" character.
- [x] Has your PR been rebased against the latest commit within the target
branch (typically master)?
- [ ] Is your initial contribution a single, squashed commit?
### For code changes:
- [x] Have you ensured that the full suite of tests is executed via mvn
-Pcontrib-check clean install at the root nifi folder?
- [x] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
- [ ] If applicable, have you updated the LICENSE file, including the main
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to
.name (programmatic access) for each of the new properties?
### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in
which it is rendered?
### Note:
Please ensure that once the PR is submitted, you check travis-ci for build
issues and submit an update to your PR as soon as possible.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/alopresto/nifi NIFI-5147
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/nifi/pull/2980.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #2980
----
commit d23c7759fcd8417cfa1a0ea06da41cccbd5b0b03
Author: Otto Fowler <ottobackwards@...>
Date: 2018-06-18T15:00:38Z
NIFI-5147 Add CalculateAttributeHash processor
commit 919945083cb4062e56eda6dc97a1cfa01ba059f9
Author: Otto Fowler <ottobackwards@...>
Date: 2018-06-26T18:51:06Z
add warning and recommendation link
commit 1e178b7daba7c58202e04fec0eb3b4393669e0a6
Author: Otto Fowler <ottobackwards@...>
Date: 2018-07-01T16:18:08Z
per review
- added properties to control behavior when attributes that are configured
are partially or completely missing
- set charset with a property
- added tests
commit f9ce58f0982bd108199164d7a474b83a0286011a
Author: Otto Fowler <ottobackwards@...>
Date: 2018-07-01T16:25:24Z
fix assert parameter order
commit 40ac9f1448c40b76a2c2d33169360520384ddb27
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T02:26:53Z
NIFI-5147 Added HashAlgorithm enum for CalculateHashAlgorithm and
HashContent.
Added unit tests.
commit c54ca6323b2f0ebca384681c52b810f5404b4e7d
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T03:07:18Z
NIFI-5147 [WIP] Used HashAlgorithm enum in CalculateHashAttribute.
Cleaned up typos and descriptions.
Added unit test demonstrating missing Blake2 algorithm.
commit 40bc74d2d27049d52206480038706e37a9b880bd
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T03:18:44Z
NIFI-5147 [WIP] Added logic for Blake2 algorithms (needs refactoring).
commit a7ba56e155efe6f7dac3aff918def35486fe9d2a
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T03:31:27Z
NIFI-5147 Blake2b limited to 160, 256, 384, and 512 in Bouncy Castle
implementation.
Updated unit test.
commit 3a9c5c5aee407798acf24398f0a214b62e8ba177
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T03:34:28Z
NIFI-5147 Finished implementing Blake2 logic.
Unit test for all default test vectors passes.
commit 9c682b805f298c53fe1067fe944a4b94791b9fa6
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T03:44:10Z
NIFI-5147 Added unit test demonstrating empty values fail.
commit a928adec9f322635f9333cf5f9a303160a31f3d8
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T03:45:08Z
NIFI-5147 Implemented logic for empty input values.
commit 67468d8498f5b6fca7847baf546521d74967acb4
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T04:17:54Z
NIFI-5147 Implemented HashService.
Added unit tests.
commit 65b53e82112c33a568ee34445dc9dad17e1422eb
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T04:31:46Z
NIFI-5147 Implemented unit tests for test vectors, convenience methods,
character encoding, and defaults.
commit 957628ed38060817c1b90019798213b06a268318
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T04:33:01Z
NIFI-5147 Refactored CalculateAttributeHash to use HashService.
All unit tests pass.
commit b112c21a924142a33e3080517fe8a19151181a73
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T05:01:14Z
NIFI-5147 Added #clearProperties() to TestRunner,
StandardProcessorTestRunner, and MockProcessContext.
commit 65ac9471b670960a71450cf73078ad7ccee46ca5
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T05:46:59Z
NIFI-5147 Added HashAttribute#fromName() method to be more generous on name
matching.
Added unit test.
commit ac24b788b058c88143a9f78919967b4dc5633cf7
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T06:19:21Z
NIFI-5147 Handled edge cases.
Added unit tests.
commit 9fb93f2ac202d5eced2d24c530841e37d9d3b542
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T06:19:51Z
NIFI-5147 Removed old unit tests.
commit 988d65b1a8581181ae21bcc9c19b8b919ee7c354
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T06:59:02Z
NIFI-5147 Fixed checkstyle issues.
commit 489f439162cf6589c02bcc216f8b2e23fd3047f7
Author: Andy LoPresto <alopresto@...>
Date: 2018-08-31T07:16:16Z
NIFI-5147 Added full algorithm description to AllowableValue.
----
> Improve HashAttribute processor
> -------------------------------
>
> Key: NIFI-5147
> URL: https://issues.apache.org/jira/browse/NIFI-5147
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Extensions
> Affects Versions: 1.6.0
> Reporter: Andy LoPresto
> Assignee: Otto Fowler
> Priority: Major
> Labels: hash, security
> Fix For: 1.8.0
>
>
> The {{HashAttribute}} processor currently has surprising behavior. Barring
> familiarity with the processor, a user would expect {{HashAttribute}} to
> generate a hash value over one or more attributes. Instead, the processor as
> it is implemented "groups" incoming flowfiles into groups based on regular
> expressions which match attribute values, and then generates a
> (non-configurable) MD5 hash over the concatenation of the matching attribute
> keys and values.
> In addition:
> * the processor throws an error and routes to failure any incoming flowfile
> which does not have all attributes specified in the processor
> * the use of MD5 is vastly deprecated
> * no other hash algorithms are available
> I am unaware of community use of this processor, but I do not want to break
> backward compatibility. I propose the following steps:
> * Implement a new {{CalculateAttributeHash}} processor (awkward name, but
> this processor already has the desired name)
> ** This processor will perform the "standard" use case -- identify an
> attribute, calculate the specified hash over the value, and write it to an
> output attribute
> ** This processor will have a required property descriptor allowing a
> dropdown menu of valid hash algorithms
> ** This processor will accept arbitrary dynamic properties identifying the
> attributes to be hashed as a key, and the resulting attribute name as a value
> ** Example: I want to generate a SHA-512 hash on the attribute {{username}},
> and a flowfile enters the processor with {{username}} value {{alopresto}}. I
> configure {{algorithm}} with {{SHA-512}} and add a dynamic property
> {{username}} -- {{username_SHA512}}. The resulting flowfile will have
> attribute {{username_SHA512}} with value
> {{739b4f6722fb5de20125751c7a1a358b2a7eb8f07e530e4bf18561fbff93234908aa9d2577770c876bca9ede5ba784d5ce6081dbbdfe5ddd446678f223b8d632}}
> * Improve the documentation of this processor to explain the goal/expected
> use case (?)
> * Link in processor documentation to new processor for standard use cases
> * Remove the error alert when an incoming flowfile does not contain all
> expected attributes. I propose changing the severity to INFO and still
> routing to failure
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)