This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push: new 5981fb3e1 RANGER-4749: fixed TagREST.getServiceResourceByResource() to populate resource value in response - #2 5981fb3e1 is described below commit 5981fb3e1e80debef39700f2da7d1829bff5d3c6 Author: Anand Nadar <nadaranand...@gmail.com> AuthorDate: Tue Mar 26 13:26:39 2024 -0700 RANGER-4749: fixed TagREST.getServiceResourceByResource() to populate resource value in response - #2 Signed-off-by: Madhan Neethiraj <mad...@apache.org> --- .../main/java/org/apache/ranger/biz/TagDBStore.java | 10 ++++++---- .../main/java/org/apache/ranger/rest/TagREST.java | 2 +- .../java/org/apache/ranger/biz/TestTagDBStore.java | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java index ce5950584..63bde37d8 100755 --- a/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/TagDBStore.java @@ -1398,9 +1398,9 @@ public class TagDBStore extends AbstractTagStore { } } - public RangerServiceResource getRangerServiceResource(String serviceName, Map<String, String[]> resourceMap) { + public static RangerServiceResource toRangerServiceResource(String serviceName, Map<String, String[]> resourceMap) { if (LOG.isDebugEnabled()) { - LOG.debug("==> TagDBStore.getRangerServiceResource(): serviceName={" + serviceName + "}"); + LOG.debug("==> TagDBStore.toRangerServiceResource(): serviceName={" + serviceName + "}"); } Map<String, RangerPolicyResource> resourceElements = new HashMap<>(); @@ -1424,11 +1424,13 @@ public class TagDBStore extends AbstractTagStore { } if (parts.length == 1) { - List<String> valueList = new ArrayList<>(); + List<String> valueList = new ArrayList<>(valueArray.length); for (String str : valueArray) { valueList.add(str.trim()); } + + policyResource.setValues(valueList); } else if (parts.length == 2 && valueArray[0] != null) { String subKey = parts[1]; String value = valueArray[0]; @@ -1444,7 +1446,7 @@ public class TagDBStore extends AbstractTagStore { RangerServiceResource ret = new RangerServiceResource(serviceName, resourceElements); if (LOG.isDebugEnabled()) { - LOG.debug("<== TagDBStore.getRangerServiceResource(): (serviceName={" + serviceName + "} RangerServiceResource={" + ret + "})"); + LOG.debug("<== TagDBStore.toRangerServiceResource(): (serviceName={" + serviceName + "} RangerServiceResource={" + ret + "})"); } return ret; diff --git a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java index 882bf4d86..2adf0b0a2 100755 --- a/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/TagREST.java @@ -1028,7 +1028,7 @@ public class TagREST { } Map<String, String[]> resourceMap = searchUtil.getMultiValueParamsWithPrefix(request, SearchFilter.RESOURCE_PREFIX, true); - RangerServiceResource serviceResource = tagStore.getRangerServiceResource(serviceName, resourceMap); + RangerServiceResource serviceResource = tagStore.toRangerServiceResource(serviceName, resourceMap); serviceResource = getServiceResourceByServiceAndResourceSignature(serviceName, new RangerServiceResourceSignature(serviceResource).getSignature()); diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java index acc9cab3c..beba9af61 100755 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestTagDBStore.java @@ -21,7 +21,10 @@ import static org.mockito.ArgumentMatchers.any; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; + import javax.ws.rs.WebApplicationException; import org.apache.ranger.common.MessageEnums; import org.apache.ranger.common.RESTErrorUtil; @@ -50,6 +53,7 @@ import org.apache.ranger.plugin.model.RangerServiceResourceWithTags; import org.apache.ranger.plugin.model.RangerTag; import org.apache.ranger.plugin.model.RangerTagDef; import org.apache.ranger.plugin.model.RangerTagResourceMap; +import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource; import org.apache.ranger.plugin.store.PList; import org.apache.ranger.plugin.util.SearchFilter; import org.apache.ranger.plugin.util.ServiceTags; @@ -1239,4 +1243,21 @@ public class TestTagDBStore { return rangerServiceResourceViewList; } + + @Test + public void testToRangerServiceResource() { + Map<String, String[]> resourceMap = new HashMap<>(); + Map<String, RangerPolicyResource> resourceElements = new HashMap<>(); + + resourceMap.put("database", new String[] { "db1" }); + resourceMap.put("database.isExcludes", new String[] { "false" }); + resourceMap.put("database.isRecursive", new String[] { "false" }); + + resourceElements.put("database", new RangerPolicyResource("db1", false, false)); + + RangerServiceResource expectedResource = new RangerServiceResource(serviceName, resourceElements); + RangerServiceResource actualResource = tagDBStore.toRangerServiceResource(serviceName, resourceMap); + + Assert.assertEquals(expectedResource.getResourceElements(), actualResource.getResourceElements()); + } } \ No newline at end of file