RANGER-2180: Handle token replacement correctly when token is not defined in the request context
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/641e5ce4 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/641e5ce4 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/641e5ce4 Branch: refs/heads/ranger-1 Commit: 641e5ce4407106deee226d73b5b75c8318a01ea9 Parents: dccae70 Author: Abhay Kulkarni <akulka...@hortonworks.com> Authored: Thu Aug 2 08:26:28 2018 -0700 Committer: Mehul Parikh <me...@apache.org> Committed: Wed Aug 29 14:20:39 2018 +0530 ---------------------------------------------------------------------- .../org/apache/ranger/plugin/util/StringTokenReplacer.java | 6 ++---- .../resourcematcher/test_resourcematcher_dynamic.json | 4 ++-- .../test_resourcematcher_wildcards_as_delimiters.json | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/641e5ce4/agents-common/src/main/java/org/apache/ranger/plugin/util/StringTokenReplacer.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/StringTokenReplacer.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/StringTokenReplacer.java index 2ec809c..ace04d6 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/util/StringTokenReplacer.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/StringTokenReplacer.java @@ -73,9 +73,7 @@ public class StringTokenReplacer { if (replaced != null) { ret.append(replaced.toString()); } else { - ret = null; - token = null; - break; + ret.append(startChar).append(token).append(endChar); } } else { ret.append(startChar).append(token).append(endChar); @@ -91,6 +89,6 @@ public class StringTokenReplacer { ret.append(startChar).append(token); } - return ret != null ? ret.toString() : null; + return ret.toString(); } } http://git-wip-us.apache.org/repos/asf/ranger/blob/641e5ce4/agents-common/src/test/resources/resourcematcher/test_resourcematcher_dynamic.json ---------------------------------------------------------------------- diff --git a/agents-common/src/test/resources/resourcematcher/test_resourcematcher_dynamic.json b/agents-common/src/test/resources/resourcematcher/test_resourcematcher_dynamic.json index 5237d47..db19f76 100644 --- a/agents-common/src/test/resources/resourcematcher/test_resourcematcher_dynamic.json +++ b/agents-common/src/test/resources/resourcematcher/test_resourcematcher_dynamic.json @@ -15,7 +15,7 @@ , { "name":"exact-path","input":"/abcw", "evalContext": {"token:somestuff": "somethingelse"}, "result":false} , - { "name":"exact-path","input":"/abc%xyz%w", "evalContext": {"token:somestuff": "somethingelse"}, "result":false} + { "name":"exact-path","input":"/abc%xyz%w", "evalContext": {"token:somestuff": "somethingelse"}, "result":true} , { "name":"exact-path","input":"/abc%xyz%w", "evalContext": {"token:somestuff": "somethingelse", "token:xyz":"abcd"}, "result":false} , @@ -39,7 +39,7 @@ , { "name":"hdfs-agent-test-11","input":"/tmp/tmpdir4/", "evalContext": {"token:FILENAME": ""}, "result":true} , - { "name":"hdfs-agent-test-12","input":"/tmp/tmpdir4/%FILENAME%", "evalContext": {"token:USER": "admin"}, "result":false} + { "name":"hdfs-agent-test-12","input":"/tmp/tmpdir4/%FILENAME%", "evalContext": {"token:USER": "admin"}, "result":true} , { "name":"hdfs-agent-test-13","input":"/tmp/tmpdir5/data-file.txt", "evalContext": {"token:BASE_FILENAME": "data-file"}, "result":true} , http://git-wip-us.apache.org/repos/asf/ranger/blob/641e5ce4/agents-common/src/test/resources/resourcematcher/test_resourcematcher_wildcards_as_delimiters.json ---------------------------------------------------------------------- diff --git a/agents-common/src/test/resources/resourcematcher/test_resourcematcher_wildcards_as_delimiters.json b/agents-common/src/test/resources/resourcematcher/test_resourcematcher_wildcards_as_delimiters.json index c907f41..8e791d6 100644 --- a/agents-common/src/test/resources/resourcematcher/test_resourcematcher_wildcards_as_delimiters.json +++ b/agents-common/src/test/resources/resourcematcher/test_resourcematcher_wildcards_as_delimiters.json @@ -17,7 +17,7 @@ , { "name":"exact-path","input":"/abcw", "evalContext": {"token:somestuff": "somethingelse"}, "result":false} , - { "name":"exact-path","input":"/abc*xyz?w", "evalContext": {"token:somestuff": "somethingelse"}, "result":false} + { "name":"exact-path","input":"/abc*xyz?w", "evalContext": {"token:somestuff": "somethingelse"}, "result":true} , { "name":"exact-path","input":"/abcabcdw", "evalContext": {"token:somestuff": "somethingelse", "token:xyz":"abcd"}, "result":true} ,