[2/8] oozie git commit: OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)
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 SasvariAuthored: Mon Oct 9 16:55:44 2017 +0200 Committer: satishsaley 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 } values given that its keys are considered password keys. * @@ -82,8 +80,6 @@ public class PasswordMasker { return Maps.transformEntries(unmasked, new Maps.EntryTransformer () { @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 jsonToMap(String jsonPath) throws IOException { return new ObjectMapper().readValue(getClass().getResourceAsStream(jsonPath), HashMap.class);
oozie git commit: OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari)
Repository: oozie Updated Branches: refs/heads/master 7bda35784 -> be293c046 OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari) Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/be293c04 Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/be293c04 Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/be293c04 Branch: refs/heads/master Commit: be293c046d7d83765c65140921c3de5ca3d7b55a Parents: 7bda357 Author: Attila SasvariAuthored: Mon Oct 9 16:55:44 2017 +0200 Committer: Attila Sasvari Committed: Mon Oct 9 16:55:44 2017 +0200 -- release-log.txt | 1 + .../org/apache/oozie/action/hadoop/PasswordMasker.java| 10 ++ .../apache/oozie/action/hadoop/TestPasswordMasker.java| 10 ++ 3 files changed, 17 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/oozie/blob/be293c04/release-log.txt -- diff --git a/release-log.txt b/release-log.txt index 600a732..13d3a97 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 5.0.0 release (trunk - unreleased) +OOZIE-3078 PasswordMasker throws NPE with null arguments (asasvari) OOZIE-3075 Follow-up on OOZIE-3054: create the lib directory if it doesn't exist (pbacsko) OOZIE-3072 oozie.service.HadoopAccessorService.action.configurations should overwrite default values set in Hadoop's configuration files (gezapeti) OOZIE-2963 Use net.hydromatic instead of org.pentaho aggdesigner-algorithmin pomfilesi (dbist13 via gezapeti) http://git-wip-us.apache.org/repos/asf/oozie/blob/be293c04/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 fd265e8..b5f7a86 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 } values given that its keys are considered password keys. * @@ -116,8 +114,9 @@ public class PasswordMasker { * @return The value of the entry changed based on the replace algorithm described above */ private String mask(String key, String value) { -checkNotNull(key, "key has to be set"); -checkNotNull(value, "value has to be set"); +if (key == null || value == null || value.isEmpty()) { +return value; +} if (isPasswordKey(key)) { return PASSWORD_MASK; @@ -147,6 +146,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/be293c04/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 jsonToMap(String jsonPath) throws IOException { return new ObjectMapper().readValue(getClass().getResourceAsStream(jsonPath), HashMap.class);