This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch ranger-2.0 in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 88d4030531dd673fb8f8899c274bc56852e625b5 Author: cao zhiqiang <[email protected]> AuthorDate: Wed Aug 25 22:16:39 2021 -0700 RANGER-3378: HDFS plugin performance improvement - RangerHdfsResource.getAsString() Signed-off-by: Madhan Neethiraj <[email protected]> (cherry picked from commit b0e970f21f7b2bd3f591e291684014f92434a2d3) --- .../plugin/policyengine/RangerAccessResourceImpl.java | 4 ++++ .../ranger/authorization/hadoop/RangerHdfsAuthorizer.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessResourceImpl.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessResourceImpl.java index 93810ae..b4811ee 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessResourceImpl.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessResourceImpl.java @@ -261,4 +261,8 @@ public class RangerAccessResourceImpl implements RangerMutableResource { return sb; } + + protected String getStringifiedValue() { return stringifiedValue; } + + protected void setStringifiedValue(String val) { this.stringifiedValue = val; } } diff --git a/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/RangerHdfsAuthorizer.java b/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/RangerHdfsAuthorizer.java index 7b2882c..6cd2a2e 100644 --- a/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/RangerHdfsAuthorizer.java +++ b/hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/RangerHdfsAuthorizer.java @@ -30,6 +30,7 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.Stack; @@ -814,6 +815,19 @@ class RangerHdfsResource extends RangerAccessResourceImpl { super.setValue(RangerHdfsAuthorizer.KEY_RESOURCE_PATH, path); super.setOwnerUser(owner); } + + @Override + public String getAsString() { + String ret = super.getStringifiedValue(); + + if (ret == null) { + ret = Objects.toString(super.getValue(RangerHdfsAuthorizer.KEY_RESOURCE_PATH)); + + super.setStringifiedValue(ret); + } + + return ret; + } } class RangerHdfsAccessRequest extends RangerAccessRequestImpl {
