This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch ranger-2.8 in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 340b32cb2196949b09f2d8878743106ed2766655 Author: Rakesh Gupta <[email protected]> AuthorDate: Fri Sep 12 15:13:07 2025 +0530 RANGER-5315: Enhance Audit Log Filters to Support Resource Name Exclusions (#663) (cherry picked from commit c4254ab9b4c29ff0b4a294dc0c019b06ef71d83a) --- .../src/main/java/org/apache/ranger/AccessAuditsService.java | 2 ++ security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java | 2 ++ .../main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx | 6 ++++++ .../src/test/java/org/apache/ranger/rest/TestAssetREST.java | 6 ++---- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java b/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java index de1feed55..c1310d91c 100644 --- a/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java +++ b/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java @@ -85,6 +85,8 @@ public AccessAuditsService() { SearchField.DATA_TYPE.INTEGER, SearchField.SEARCH_TYPE.FULL)); searchFields.add(new SearchField("-requestUser", "-reqUser", SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.FULL)); + searchFields.add(new SearchField("excludeResourceName", "-resource", + SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.PARTIAL)); searchFields.add(new SearchField("resourceType", "resType", SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.FULL)); searchFields.add(new SearchField("reason", "reason", diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java index 065b9d33e..eb004d9d7 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java @@ -628,6 +628,8 @@ public VXAccessAuditList getAccessLogs(@Context HttpServletRequest request, @Que "Request Data", StringUtil.VALIDATION_TEXT); searchUtil.extractString(request, searchCriteria, "resourcePath", "Resource Name", StringUtil.VALIDATION_TEXT); + searchUtil.extractString(request, searchCriteria, "excludeResourceName", + "Exclude Resource Name", StringUtil.VALIDATION_TEXT); searchUtil.extractString(request, searchCriteria, "clientIP", "Client IP", StringUtil.VALIDATION_TEXT); searchUtil.extractString(request, searchCriteria, "resourceType", diff --git a/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx b/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx index 39d7bcf48..8abeb287a 100644 --- a/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx +++ b/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx @@ -963,6 +963,12 @@ function Access() { urlLabel: "zoneName", type: "textoptions", options: getZones + }, + { + category: "excludeResourceName", + label: "Exclude Resource Name", + urlLabel: "excludeResourceName", + type: "text" } ]; diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java index ec7b79677..cd58a80e0 100644 --- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java +++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java @@ -687,8 +687,7 @@ public void testGetAccessLogs() { Mockito.verify(msBizUtil).isKeyAdmin(); Mockito.verify(assetMgr).getAccessLogs(searchCriteria); Mockito.verify(daoManager).getXXServiceDef(); - Mockito.verify(searchUtil, Mockito.times(14)).extractString((HttpServletRequest) Mockito.any(), - (SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class)); + Mockito.verify(searchUtil, Mockito.times(15)).extractString(Mockito.any(), Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class)); Mockito.verify(searchUtil, Mockito.times(4)).extractInt((HttpServletRequest) Mockito.any(), (SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString()); Mockito.verify(searchUtil, Mockito.times(2)).extractDate((HttpServletRequest) Mockito.any(), @@ -743,8 +742,7 @@ public void testGetAccessLogsForKms() { Mockito.verify(msBizUtil).isKeyAdmin(); Mockito.verify(assetMgr).getAccessLogs(searchCriteria); Mockito.verify(daoManager).getXXServiceDef(); - Mockito.verify(searchUtil, Mockito.times(14)).extractString((HttpServletRequest) Mockito.any(), - (SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class)); + Mockito.verify(searchUtil, Mockito.times(15)).extractString(Mockito.any(), Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class)); Mockito.verify(searchUtil, Mockito.times(4)).extractInt((HttpServletRequest) Mockito.any(), (SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString()); Mockito.verify(searchUtil, Mockito.times(2)).extractDate((HttpServletRequest) Mockito.any(),
