OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)
(cherry picked from commit be293c046d7d83765c65140921c3de5ca3d7b55a)
sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/f409c2d8
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/f409c2d8
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/f409c2d8
Branch: refs/heads/branch-4.3
Commit: f409c2d8af1ea2868d8c505059dc52e8acfe5dc8
Parents: a979185
Author: Attila Sasvari <[email protected]>
Authored: Mon Oct 9 16:55:44 2017 +0200
Committer: satishsaley <[email protected]>
Committed: Mon Dec 18 16:12:33 2017 -0800
----------------------------------------------------------------------
release-log.txt | 1 +
.../org/apache/oozie/action/hadoop/PasswordMasker.java | 7 +++----
.../apache/oozie/action/hadoop/TestPasswordMasker.java | 10 ++++++++++
3 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oozie/blob/f409c2d8/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 455f527..c682dfa 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 4.3.1 release
+OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)
OOZIE-3127 Remove redundant check for user (satishsaley)
OOZIE-2885 Running Spark actions should not need Hive on the classpath
(satishsaley)
OOZIE-3058 nocleanup option is missing in oozie-coordinator-0.5.xsd
(satishsaley)
http://git-wip-us.apache.org/repos/asf/oozie/blob/f409c2d8/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
----------------------------------------------------------------------
diff --git
a/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
b/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
index eb60aac..a755672 100644
---
a/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
+++
b/sharelib/oozie/src/main/java/org/apache/oozie/action/hadoop/PasswordMasker.java
@@ -25,8 +25,6 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static com.google.common.base.Preconditions.checkNotNull;
-
/**
* A generic password masker that masks {@code Map<String, String>} values
given that its keys are considered password keys.
* <p/>
@@ -82,8 +80,6 @@ public class PasswordMasker {
return Maps.transformEntries(unmasked, new
Maps.EntryTransformer<String, String, String>() {
@Override
public String transformEntry(@Nonnull String key, @Nonnull String
value) {
- checkNotNull(key, "key has to be set");
- checkNotNull(value, "value has to be set");
if (isPasswordKey(key)) {
return PASSWORD_MASK;
@@ -116,6 +112,9 @@ public class PasswordMasker {
}
private boolean containsPasswordFragment(String maybePasswordFragments) {
+ if (maybePasswordFragments == null || maybePasswordFragments.length()
== 0) {
+ return false;
+ }
return PASSWORD_CONTAINING_PATTERN
.matcher(maybePasswordFragments)
.matches();
http://git-wip-us.apache.org/repos/asf/oozie/blob/f409c2d8/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
----------------------------------------------------------------------
diff --git
a/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
b/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
index 08e55e1..e362759 100644
---
a/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
+++
b/sharelib/oozie/src/test/java/org/apache/oozie/action/hadoop/TestPasswordMasker.java
@@ -102,6 +102,16 @@ public class TestPasswordMasker {
passwordMasker.maskPasswordsIfNecessary("aa
-Djava.sysprop.password=1234 bb DUMMY_PASSWORD=dummy cc"));
}
+ @Test
+ public void testMaskNullArgument() {
+ assertEquals(null, passwordMasker.maskPasswordsIfNecessary(null));
+ }
+
+ @Test
+ public void testMaskEmptyArgument() {
+ assertEquals("", passwordMasker.maskPasswordsIfNecessary(""));
+ }
+
@SuppressWarnings("unchecked")
private Map<String, String> jsonToMap(String jsonPath) throws IOException {
return new
ObjectMapper().readValue(getClass().getResourceAsStream(jsonPath),
HashMap.class);