Skip to content

Apache Ranger 2.7.0 release notes

Apache Ranger 2.7.0 was released on July 30, 2025. The release splits the audit framework into one library per destination, modernizes the Python scripts for Python 3, and adds retry and service-configuration improvements. It contains a breaking change for plugin implementers; read the section below before you upgrade a custom plugin.

Highlights

  • Audit module refactoring — each audit destination now lives in its own module (RANGER-5208); see the breaking changes below.
  • Python 3 — installer and utility scripts modernized for Python 3 (RANGER-5147).
  • REST client resilienceRangerRESTClient retries GET requests on HTTP 5xx errors (RANGER-5201).
  • Policy management — delete multiple policies with a wildcard through the API (RANGER-5113); the service configuration UI shows additional settings such as service.admin.users and service.admin.groups (RANGER-3643).
  • UserSyncranger.usersync.ldap.referral=follow is the default (RANGER-5078).
  • Docker — pre-built ranger-base image pulled from Docker Hub (RANGER-5158, RANGER-5241), Ubuntu base update (RANGER-5138), all databases in one compose file with exposed ports (RANGER-5166, RANGER-5167), support for the apache/ranger-tools repository (RANGER-5236).
  • Quality — JaCoCo code-coverage report in CI (RANGER-5229), unit tests for the Atlas authorizer (RANGER-5216), Swagger UI 5.20.1 (RANGER-5164).
  • Notable fixes — plugin classloader parent (RANGER-3636), tag allow/deny policy enforcement (RANGER-5162, RANGER-5202, RANGER-5225), HDFS audit write/append modes (RANGER-5102), row-filter expression evaluation (RANGER-5174), master key migration to external key stores (RANGER-5169).

Breaking changes

  • The library ranger-plugins-audit is no longer available starting with 2.7.0 (the Maven artifact of that name is now a parent POM without a jar). Its contents are split into one library per audit destination, so a plugin only needs the destinations it uses. Replace references to ranger-plugins-audit with:
    • ranger-audit-dest-cloudwatch
    • ranger-audit-dest-es
    • ranger-audit-dest-hdfs
    • ranger-audit-dest-kafka
    • ranger-audit-dest-log4j
    • ranger-audit-dest-solr
  • Plugin packages in 2.7.0 bundle the dependent libraries for two audit destinations only: Solr and HDFS. Earlier versions bundled libraries for every destination (AWS CloudWatch, Elasticsearch, Kafka, Log4j). If you need another destination, rebuild the plugin package after adding the corresponding ranger-audit-dest-* dependency to the plugin's pom.xml and packaging descriptor. See Audit framework.

Component versions

The release was built and tested with the following component versions (as recorded in the release notes):

Component Version
Java JDK 8
Python 3.10.12
MariaDB 10.7.3
PostgreSQL 12
Oracle 23.6
Apache Solr 8.11.3

Artifacts

Artifact Location
Source tarball apache-ranger-2.7.0.tar.gz (signature, SHA-512)
Binary tarballs https://downloads.apache.org/ranger/2.7.0/services/ (admin, usersync, tagsync, kms), https://downloads.apache.org/ranger/2.7.0/plugins/, https://downloads.apache.org/ranger/2.7.0/tools/
Release directory https://downloads.apache.org/ranger/2.7.0/
Git tag release-ranger-2.7.0
Docker images apache/ranger:2.7.0, apache/ranger-db:2.7.0, apache/ranger-solr:2.7.0, apache/ranger-zk:2.7.0 on Docker Hub
Maven Central org.apache.ranger:*:2.7.0
Archive archive.apache.org/dist/ranger/2.7.0/

Verify every download against its .asc signature and checksum file before you use it; see Download and verify.

Resolved issues

The tables below list the 56 JIRA issues recorded in the release notes for this version (17 improvements, 31 bugs fixed, 8 tasks). Each key links to the issue in the Apache JIRA.

Improvements

JIRA Summary
RANGER-3643 Service config UI to include additional configurations like service.admin.users, service.admin.groups
RANGER-5078 Set ranger.usersync.ldap.referral=follow as default config
RANGER-5113 DELETE multiple policies with a wildcard via API call
RANGER-5138 Docker setup: update Ubuntu version
RANGER-5147 Modernize Python scripts for Python 3
RANGER-5158 Pre-build ranger-base image
RANGER-5166 Expose database ports for all databases in docker compose
RANGER-5167 Merge all database compose files into a single file
RANGER-5198 Prevent selected long string values from getting truncated in the react-select control
RANGER-5201 Retry GET requests on HTTP 5xx errors in RangerRESTClient
RANGER-5207 Update jquery file naming to prevent version disclosure
RANGER-5208 refactor audit module to move each destination implementation to a separate module
RANGER-5216 add unit tests for RangerAtlasAuthorizer
RANGER-5229 CI: Generate Code Coverage Report with JaCoCo
RANGER-5241 Update all docker images to pull ranger-base from DockerHub
RANGER-5247 RangerOzoneAuthorizer: replace unused instance member with a local variable
RANGER-5258 Documentation : add reference to CI, source-repo and jira as menu items under resource

Bugs fixed

JIRA Summary
RANGER-3636 Plugin classloader should use classloader of shim class as parent
RANGER-4721 Ranger Admin server is not sending DataMasklabel for masking policy audit logs
RANGER-4993 Ranger KMS - Missing HSTS Headers for 404 Not found requests port 9494
RANGER-5003 Fix the bug that deleting a service fails with gtid enabled mysql server
RANGER-5074 keyadmin user is able to get admin user logs
RANGER-5102 Add config parameter to allow audits to HDFS in both WRITE and APPEND modes in case of errors/exceptions
RANGER-5123 Handle Transaction Log Migration for Fresh Install
RANGER-5134 Fix processing of tasks scheduled to run after current transaction is complete
RANGER-5146 500 API Error When Deleting TagDef with a Linked Tag
RANGER-5151 Audit to HDFS fails with error: Stream encountered errors while writing audits to HDFS!
RANGER-5153 Intermittent test failure in RangerJSONAuditWriterTest
RANGER-5154 Functionality to delete records from x_auth_sess table via api is not working
RANGER-5155 Service Definition with empty configs causes Ranger UI rendering issues
RANGER-5162 Tag Allowed policy is not being enforced
RANGER-5164 Ranger: Upgrade Swagger-UI to the latest V5.20.1
RANGER-5165 Update notification settings in .asf.yaml
RANGER-5169 Error while migrating Masterkey from older format to external key store
RANGER-5174 failure in evaluating expressions in row-filter
RANGER-5177 For tagresourcemaps api, resourceId search filter does not work
RANGER-5182 Ranger: Upgrade axios version 1.7.4 to latest 1.8.4
RANGER-5183 Federated User getting created with wrong user source
RANGER-5185 Fix potential NPE in RangerBasePlugin
RANGER-5189 doc site format is incorrect ....
RANGER-5191 Typo in the log message in RangerRESTClient
RANGER-5197 build_ranger_using_docker.sh - fails due to centos docker image is not supported.
RANGER-5202 Tag deny policy is not getting enforced on scan table command for hbase
RANGER-5224 dedupTags removes the valid tags while deduplicating tags
RANGER-5225 Override allow policy not taking precedence over normal deny tag policy
RANGER-5251 dedupTags() doesn’t remove duplicate tag IDs within a single resource’s resourceToTagIds list
RANGER-5261 Disable Log4J Audit Destination for Ozone in OM container
RANGER-5264 Update commands in release-build.xml

Tasks

JIRA Summary
RANGER-4587 Blog: Apache Ranger - dynamic expressions
RANGER-4846 Update Apache Ranger website with 2.5.0
RANGER-5100 Update Apache Ranger website with 2.6.0
RANGER-5124 The policy and tag active time are not in sync with the last update and policy download
RANGER-5149 update ranger-2.7 branch pom.xml version to 2.7.0-SNAPSHOT
RANGER-5228 Bump jacoco to 0.8.13
RANGER-5236 Setup apache/ranger-tools
RANGER-5244 Move Dockerfile.ranger-base-ubi to apache/ranger-tools

Further reading