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));