This is an automated email from the ASF dual-hosted git repository.

dhavalshah9131 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 c4254ab9b RANGER-5315: Enhance Audit Log Filters to Support Resource 
Name Exclusions (#663)
c4254ab9b is described below

commit c4254ab9b4c29ff0b4a294dc0c019b06ef71d83a
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)
---
 .../src/main/java/org/apache/ranger/AccessAuditsService.java        | 1 +
 security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java  | 1 +
 .../main/webapp/react-webapp/src/views/AuditEvent/AccessLogs.jsx    | 6 ++++++
 .../src/test/java/org/apache/ranger/rest/TestAssetREST.java         | 4 ++--
 4 files changed, 10 insertions(+), 2 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 70270673a..32d6f1bea 100644
--- a/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
+++ b/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
@@ -71,6 +71,7 @@ public AccessAuditsService() {
          */
         searchFields.add(new SearchField("-repoType", "-repoType", 
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", 
SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.FULL));
         searchFields.add(new SearchField("action", "action", 
SearchField.DATA_TYPE.STRING, SearchField.SEARCH_TYPE.FULL));
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 46ee557c1..d3d0dde72 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
@@ -552,6 +552,7 @@ public VXAccessAuditList getAccessLogs(@Context 
HttpServletRequest request, @Que
         searchUtil.extractStringList(request, searchCriteria, "excludeUser", 
"Exclude Users", "-requestUser", null, StringUtil.VALIDATION_TEXT);
         searchUtil.extractString(request, searchCriteria, "requestData", 
"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", 
"Resource Type", StringUtil.VALIDATION_TEXT);
         searchUtil.extractString(request, searchCriteria, 
"excludeServiceUser", "Exclude Service User", StringUtil.VALIDATION_TEXT);
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 9af635448..858de6c2e 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
@@ -1009,6 +1009,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 04ef82613..b651c02db 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
@@ -569,7 +569,7 @@ public void testGetAccessLogs() {
         Mockito.verify(msBizUtil).isKeyAdmin();
         Mockito.verify(assetMgr).getAccessLogs(searchCriteria);
         Mockito.verify(daoManager).getXXServiceDef();
-        Mockito.verify(searchUtil, 
Mockito.times(15)).extractString(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
+        Mockito.verify(searchUtil, 
Mockito.times(16)).extractString(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
         Mockito.verify(searchUtil, Mockito.times(4)).extractInt(Mockito.any(), 
Mockito.any(), Mockito.anyString(), Mockito.anyString());
         Mockito.verify(searchUtil, 
Mockito.times(2)).extractDate(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
         Mockito.verify(searchUtil).extractLong(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString());
@@ -604,7 +604,7 @@ public void testGetAccessLogsForKms() {
         Mockito.verify(msBizUtil).isKeyAdmin();
         Mockito.verify(assetMgr).getAccessLogs(searchCriteria);
         Mockito.verify(daoManager).getXXServiceDef();
-        Mockito.verify(searchUtil, 
Mockito.times(15)).extractString(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
+        Mockito.verify(searchUtil, 
Mockito.times(16)).extractString(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
         Mockito.verify(searchUtil, Mockito.times(4)).extractInt(Mockito.any(), 
Mockito.any(), Mockito.anyString(), Mockito.anyString());
         Mockito.verify(searchUtil, 
Mockito.times(2)).extractDate(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
         Mockito.verify(searchUtil).extractLong(Mockito.any(), Mockito.any(), 
Mockito.anyString(), Mockito.anyString());

Reply via email to