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
commit 948c6bf3843937070cd2b1c270544889f378bc98 Author: ramk <[email protected]> AuthorDate: Tue Jul 28 22:11:47 2026 +0530 RANGER-5687: RC1 validation fixes for 2.9.0 docker and KMS Align OZONE_VERSION to 2.1.1, remove audit-server README refs not shipped in 2.9.0, fix DB audit multi-value search fields, and use getServiceByNameForDP for KMS role downloads. --- dev-support/ranger-docker/.env | 2 +- dev-support/ranger-docker/README.md | 51 ---------------------- .../org/apache/ranger/AccessAuditsService.java | 2 +- .../main/java/org/apache/ranger/rest/RoleREST.java | 8 ++-- .../apache/ranger/service/XAccessAuditService.java | 6 ++- 5 files changed, 11 insertions(+), 58 deletions(-) diff --git a/dev-support/ranger-docker/.env b/dev-support/ranger-docker/.env index 1e9ea2966..4db6300e3 100644 --- a/dev-support/ranger-docker/.env +++ b/dev-support/ranger-docker/.env @@ -38,7 +38,7 @@ KERBEROS_MASTER_PASSWORD=rangerR0cks! KERBEROS_ADMIN_PRINCIPAL=admin/admin KERBEROS_ADMIN_PASSWORD=rangerR0cks! -OZONE_VERSION=1.4.0 +OZONE_VERSION=2.1.1 OZONE_RUNNER_VERSION=20230615-1 OZONE_RUNNER_IMAGE=apache/ozone-runner diff --git a/dev-support/ranger-docker/README.md b/dev-support/ranger-docker/README.md index 4c09881c5..e4956ef64 100644 --- a/dev-support/ranger-docker/README.md +++ b/dev-support/ranger-docker/README.md @@ -158,43 +158,9 @@ docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-opensearch. OpenSearch can replace Solr for **audit storage and UI queries**. Ranger Admin reads audits via `audit_store=opensearch` using a native low-level REST client (compatible with any OpenSearch version). -**Write path:** access audits flow through audit-server ingestor, Kafka, and the Java -`ranger-audit-dispatcher-opensearch` service into the OpenSearch `ranger_audits` index. Ranger Admin policy/admin transaction audits remain DB-backed; this is the same boundary used by the Solr audit path. -##### Setup - -~~~ -# Prerequisites: build the audit-dispatcher tarball and download archives -mvn clean package -DskipTests -pl distro -am -cp target/ranger-*-audit-dispatcher.tar.gz dev-support/ranger-docker/dist/ -cd dev-support/ranger-docker -./download-archives.sh kafka opensearch hadoop - -export RANGER_DB_TYPE=postgres - -# 1. Start OpenSearch first (Ranger Admin's bootstrapper needs it on startup) -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-opensearch.yml \ - -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hadoop.yml \ - -f docker-compose.ranger-audit-server.yml \ - -f docker-compose.ranger-audit-dispatcher-opensearch.yml up -d ranger-opensearch - -# 2. Start core stack (Ranger Admin, Kafka, Hadoop) -# Kafka auto-creates the ranger_audits topic on startup. -# Ranger Admin auto-creates the OpenSearch index via OpenSearchIndexBootStrapper. -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-opensearch.yml \ - -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hadoop.yml \ - -f docker-compose.ranger-audit-server.yml \ - -f docker-compose.ranger-audit-dispatcher-opensearch.yml up -d ranger ranger-kafka ranger-hadoop - -# 3. Start audit ingestor and OpenSearch dispatcher -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-opensearch.yml \ - -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hadoop.yml \ - -f docker-compose.ranger-audit-server.yml \ - -f docker-compose.ranger-audit-dispatcher-opensearch.yml up -d ranger-audit-ingestor ranger-audit-dispatcher-opensearch -~~~ - For **fresh Ranger installs** using OpenSearch for audits, set `audit_store=opensearch` in `scripts/admin/ranger-admin-install-postgres.properties` and configure the `audit_opensearch_*` properties. @@ -212,20 +178,3 @@ docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.ym ~~~ docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-usersync.yml -f docker-compose.ranger-tagsync.yml -f docker-compose.ranger-kms.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-hbase.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-hive.yml -f docker-compose.ranger-trino.yml -f docker-compose.ranger-knox.yml up -d --no-deps --force-recreate --build <service-1> <service-2> ~~~ - -#### To bring up audit server ingestor + dispatchers. Make sure kafka, solr, and hdfs containers are running before bringing up audit server services. -~~~ -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-audit-server.yml up -d -~~~ - -#### To bring up audit server services individually: -~~~ -# Audit ingestor -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-audit-ingestor.yml up -d - -# Solr dispatcher -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-audit-dispatcher-solr.yml up -d - -# HDFS dispatcher -docker compose -f docker-compose.ranger.yml -f docker-compose.ranger-hadoop.yml -f docker-compose.ranger-kafka.yml -f docker-compose.ranger-audit-dispatcher-hdfs.yml up -d -~~~ 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/rest/RoleREST.java b/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java index 13ca10fe3..33675ebcd 100644 --- a/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java +++ b/security-admin/src/main/java/org/apache/ranger/rest/RoleREST.java @@ -1088,18 +1088,20 @@ public RangerRoles getSecureRangerRolesIfUpdated( false); } XXServiceDef xServiceDef = daoManager.getXXServiceDef().getById(xService.getType()); - RangerService rangerService = svcStore.getServiceByName(serviceName); + RangerService rangerService; if (StringUtils.equals(xServiceDef.getImplclassname(), EmbeddedServiceDefsUtil.KMS_IMPL_CLASS_NAME)) { + rangerService = svcStore.getServiceByNameForDP(serviceName); if (isKeyAdmin) { isAllowed = true; }else { isAllowed = bizUtil.isUserAllowed(rangerService, POLICY_DOWNLOAD_USERS); } - }else{ + } else { + rangerService = svcStore.getServiceByName(serviceName); if (isAdmin) { isAllowed = true; - }else{ + } else { isAllowed = bizUtil.isUserAllowed(rangerService, POLICY_DOWNLOAD_USERS); } } 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));
