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

ramackri pushed a commit to branch ranger-2.9
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.9 by this push:
     new 318533d61 RANGER-5694: Fix DB audit multi-value filter 
ClassCastException
318533d61 is described below

commit 318533d610fe3ae09465f3dcc264e200f5abe7a1
Author: ramk <[email protected]>
AuthorDate: Tue Jul 28 22:26:14 2026 +0530

    RANGER-5694: Fix DB audit multi-value filter ClassCastException
    
    Use STR_LIST for requestUser, -requestUser, and zoneName in 
XAccessAuditService
    so AssetREST multi-value filters work on the DB audit path. Align 
-requestUser
    in AccessAuditsService. Restore docker Postgres default audit_store=solr
    (RC1 RANGER-5687 backport had switched it to opensearch).
---
 .../admin/ranger-admin-install-postgres.properties | 22 +++++++++++-----------
 .../org/apache/ranger/AccessAuditsService.java     |  2 +-
 .../apache/ranger/service/XAccessAuditService.java |  6 ++++--
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git 
a/dev-support/ranger-docker/scripts/admin/ranger-admin-install-postgres.properties
 
b/dev-support/ranger-docker/scripts/admin/ranger-admin-install-postgres.properties
index 80c18df4e..0b1d3f560 100644
--- 
a/dev-support/ranger-docker/scripts/admin/ranger-admin-install-postgres.properties
+++ 
b/dev-support/ranger-docker/scripts/admin/ranger-admin-install-postgres.properties
@@ -46,10 +46,10 @@ keyadmin_password=rangerR0cks!
 ## --- Audit store: enable ONE of the following blocks ---
 
 ## Option 1: Solr (default)
-# audit_store=solr
+audit_store=solr
 # FQDN required for SPNEGO to Solr (HTTP/ranger-solr.rangernw@REALM)
-# audit_solr_urls=http://ranger-solr.rangernw:8983/solr/ranger_audits
-# audit_solr_collection_name=ranger_audits
+audit_solr_urls=http://ranger-solr.rangernw:8983/solr/ranger_audits
+audit_solr_collection_name=ranger_audits
 
 ## Option 2: OpenSearch / Elasticsearch (legacy - uses ES HighLevel REST 
Client)
 # audit_store=elasticsearch
@@ -62,14 +62,14 @@ keyadmin_password=rangerR0cks!
 # audit_elasticsearch_bootstrap_enabled=true
 
 ## Option 3: OpenSearch (native - uses low-level REST client, works with any 
OpenSearch version)
-audit_store=opensearch
-audit_opensearch_urls=ranger-opensearch
-audit_opensearch_port=9200
-audit_opensearch_protocol=http
-audit_opensearch_user=admin
-audit_opensearch_password=admin
-audit_opensearch_index=ranger_audits
-audit_opensearch_bootstrap_enabled=true
+# audit_store=opensearch
+# audit_opensearch_urls=ranger-opensearch
+# audit_opensearch_port=9200
+# audit_opensearch_protocol=http
+# audit_opensearch_user=admin
+# audit_opensearch_password=admin
+# audit_opensearch_index=ranger_audits
+# audit_opensearch_bootstrap_enabled=true
 
 policymgr_external_url=http://ranger-admin:6080
 policymgr_http_enabled=true
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 4dde28f6b..4fd33cc6c 100644
--- a/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
+++ b/security-admin/src/main/java/org/apache/ranger/AccessAuditsService.java
@@ -84,7 +84,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));
+                SearchField.DATA_TYPE.STR_LIST, SearchField.SEARCH_TYPE.FULL));
         searchFields.add(new SearchField("excludeResourceName", "-resource",
                 SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.PARTIAL));
         searchFields.add(new SearchField("resourceType", "resType",
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
index 4b9201434..65bd713eb 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XAccessAuditService.java
@@ -58,7 +58,9 @@ public XAccessAuditService() {
                searchFields.add(new SearchField("sessionId", "obj.sessionId",
                                SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.PARTIAL));
                searchFields.add(new SearchField("requestUser", 
"obj.requestUser",
-                               SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.PARTIAL));
+                               SearchField.DATA_TYPE.STR_LIST, 
SearchField.SEARCH_TYPE.PARTIAL));
+               searchFields.add(new SearchField("-requestUser", 
"obj.requestUser",
+                               SearchField.DATA_TYPE.STR_LIST, 
SearchField.SEARCH_TYPE.PARTIAL));
                searchFields.add(new SearchField("requestData", 
"obj.requestData",
                                SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.PARTIAL));
                searchFields.add(new SearchField("resourcePath", 
"obj.resourcePath",
@@ -85,7 +87,7 @@ public XAccessAuditService() {
                searchFields.add(new SearchField("cluster", "obj.cluster",
                                SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.FULL));
                searchFields.add(new SearchField("zoneName", "obj.zoneName",
-                               SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.FULL));
+                               SearchField.DATA_TYPE.STR_LIST, 
SearchField.SEARCH_TYPE.FULL));
                searchFields.add(new SearchField("agentHost", "obj.agentHost",
                                SearchField.DATA_TYPE.STRING, 
SearchField.SEARCH_TYPE.PARTIAL));
 

Reply via email to