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(),

Reply via email to