Skip to content

Apache Ranger 2.4.0 release notes

Apache Ranger 2.4.0 was released on March 30, 2023. The release adds fine-grained access control over nested data structures, a performance analyzer tool, official docker images on Docker Hub and multiple policy-model enhancements.

Highlights

  • Nested structure plugin — fine-grained access control over nested structures such as JSON documents (RANGER-3828).
  • Performance and scalability analyzer tool for Ranger (RANGER-3852).
  • External user store retriever (RangerExternalUserStoreRetriever) for attribute-based policies (RANGER-3855); user attributes in masking expressions (RANGER-3865), default values when an attribute is missing (RANGER-3997).
  • Policy model — multiple resource sets in a policy (RANGER-3796), access-type categories such as Create/Read/Update/Delete/Manage (RANGER-4035), option to disable default policies per hierarchy (RANGER-4011), service-definition option to include the expression condition implicitly (RANGER-4117).
  • Administration — anonymous download of policies, roles and tags (RANGER-3623), non-admin users can manage roles (RANGER-3837), Ranger Admin client for non-Kerberized servers (RANGER-3856), requestId in logs via RangerMDCFilter (RANGER-4024).
  • Clients — Python client for Ranger KMS (RANGER-3982) and security-zone APIs in the Python and Java clients (RANGER-4080, RANGER-4101).
  • Trino — column masks and row filters with Trino SPI 376+ (RANGER-3983), views distinguished from tables (RANGER-3988).
  • Docker — official images published to Docker Hub (RANGER-4044), Ranger KMS in docker (RANGER-3978).
  • Dependencies — HBase 2.4.6 (RANGER-3971), Elasticsearch 7.10.2 (RANGER-3165), Solr 8.11.2 (RANGER-3818), Tomcat 8.5.86 (RANGER-4113), EclipseLink (RANGER-4107); builds on Apple Silicon (RANGER-3863).

Artifacts

Artifact Location
Source tarball apache-ranger-2.4.0.tar.gz (signature, SHA-512)
Release directory https://archive.apache.org/dist/ranger/2.4.0/
Git tag release-ranger-2.4.0
Docker images apache/ranger:2.4.0, apache/ranger-db:2.4.0, apache/ranger-solr:2.4.0, apache/ranger-zk:2.4.0 on Docker Hub
Maven Central org.apache.ranger:*:2.4.0
Archive archive.apache.org/dist/ranger/2.4.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 142 JIRA issues recorded in the release notes for this version (5 new features, 46 improvements, 80 bugs fixed, 7 tasks, 4 tests). Each key links to the issue in the Apache JIRA.

New features

JIRA Summary
RANGER-3828 Fine-grained Access Control over nested structures
RANGER-3852 Performance and scalability analyzer tool for Ranger
RANGER-3855 RangerExternalUserStoreRetriever class
RANGER-3971 Upgrade HBASE version to 2.4.6
RANGER-4028 Ranger - Upgrade bootbox.js.

Improvements

JIRA Summary
RANGER-2928 [Ranger Zone REST API] Resources data is missing in XML format
RANGER-3165 Upgrade Elasticsearch version in Ranger to Elasticsearch 7.10.2
RANGER-3534 Review of RangerHiveAuditHandler
RANGER-3623 Add ability to enable anonymous download of policy/role/tag
RANGER-3633 Remove eclipse .project file from git
RANGER-3664 Ranger KMS : Add refresh functionality on kms key listing page.
RANGER-3763 The max limit of the requested entities is not configurable in tagsync
RANGER-3767 Add text message in HDFS and YARN policy pages to highlight the fallback ACL option
RANGER-3787 Non-daemon threads started by ElasticSearchAuditDestination cause Spark application hanging
RANGER-3794 Improve performance of delete users/groups utility
RANGER-3796 Enhancement to support multiple resource sets in a policy
RANGER-3818 Upgrade Solr to 8.11.2
RANGER-3822 RangerService outputs password information in plaintext
RANGER-3837 Allow Ranger non-admins to get, create, edit and delete roles
RANGER-3856 Ranger admin client option to work with non-kerberized server
RANGER-3865 support for using user attributes in masking expressions
RANGER-3900 Roles deletion Takes time in Apache Ranger when there are more users,groups,roles
RANGER-3902 dbLoadTime is not added correctly in RangerServicePoliciesCache
RANGER-3903 Improvement in RangerPolicyDeltaUtil--> applyDeltas method
RANGER-3910 API Documentation is broken for knox sso
RANGER-3934 improve tag cache handling to reduce resource usage
RANGER-3940 Add javascript includes(), intersects() polyfills for array prototype to RangerCommonConstants
RANGER-3948 update serialization to skip empty values
RANGER-3951 optimize memory used for tags in plugins and server
RANGER-3955 optimization to reduce duplicate strings
RANGER-3973 LDAP incremental search not always available
RANGER-3978 Docker setup to run Ranger KMS
RANGER-3982 Python client for Ranger KMS REST APIs
RANGER-3983 Support getColumnMasks and getRowFilters in Trino SPI 376+
RANGER-3985 Trino plugin: Check table name when creating tables
RANGER-3986 Upgrade trino guice dependency to 5.1.0
RANGER-3988 Trino plugin should differntiate between views and tables
RANGER-3997 option to use default value when user/group/tag does not have the attribute
RANGER-4004 During the service deletion also, we can clear the in-memory cache for that service which got deleted on the ranger side
RANGER-4011 option to disable creation of default policies per hierarchy
RANGER-4012 getPolicyByName searches policy by serviceName, policyName simply by traverse all policies in RangerServicePoliciesCache instead of DB
RANGER-4024 Adding requestId as part of Ranger logs via RangerMDCFilter when the request header contains request-Id
RANGER-4071 Support for LDAP/AD usernames and group names with special chars
RANGER-4080 Python client update to add missing security-zone APIs
RANGER-4083 Tag-based policy UI to not show permissions in deny/exception for services that don't support deny/exception
RANGER-4100 Efficient computation of the smallest set of evaluators returned by search of multiple Trie trees
RANGER-4101 Java client update to add missing security-zone APIs
RANGER-4107 Upgrade EclipseLink
RANGER-4114 Consistent use of plugin property prefix in context enrichers
RANGER-4117 service-def option to include expression condition implictly
RANGER-4122 [RangerAdmin] Reorganize authorization/access check logic

Bugs fixed

JIRA Summary
RANGER-2737 Ranger REST API returns different information when GET user by id and by name
RANGER-3080 A service administrator should be allowed to set "excludes" flag for a policy resource
RANGER-3108 NPE in RangerPolicyRepository.init
RANGER-3387 Ranger Admin Header Validation.
RANGER-3394 Too much varchar(4000) causes table to exceed ROW SIZE limit in MySQL
RANGER-3500 Ranger policy list doesn't support sorting by field
RANGER-3670 Policy update creates unnecessary entries in transaction log table
RANGER-3680 mysql ErrorCode:1118 when Importing DB schema to database
RANGER-3719 Can not create mysql table with charset utf8mb4.
RANGER-3775 Logback.xml has been incorrectly modified by RANGER-3704.
RANGER-3789 Upgrade Handlebars version to 4.7.7
RANGER-3790 Ranger tagsync module should not depend on kafka server
RANGER-3791 Upgrade json-smart, gson and jersey-client libraries version
RANGER-3798 Ranger API Resource Metrics REST "Up time of JVM" does not update.
RANGER-3806 Group's users mapping entry failing whenever primary key auto-increment is not set to 1 in db
RANGER-3807 getUserRoles API gives 200 for non existing user passed to this API
RANGER-3813 Fix ConcurrentModificationException in UnixUserGroupBuilder
RANGER-3814 IS_IN_ROLE(roleName) condition always returns false
RANGER-3816 update getResourceACLs() API to handle macros in resource names
RANGER-3819 Upgrade springframework version
RANGER-3820 Upgrade Netty version to 4.1.78.Final
RANGER-3824 [Ranger] : /service/tags/resources error message is not proper for duplicate resource & not able to update resource resource
RANGER-3825 Ranger internal user is unable to change his password after the upgrade.
RANGER-3829 Incremental Sync value is always true under Ranger Audit (Usersync)
RANGER-3840 SHOW DATABASES command should list databases owned by the user
RANGER-3846 Ranger DB patch 058 failing when multiple policies having same resourceSignature
RANGER-3847 [Ranger] : Http status & Error message is not correct for /xaudit/trx_log
RANGER-3848 RangerClient does not auto renew Kerberos ticket after ticket lifetime expired
RANGER-3853 Ranger java patch J10054 takes time
RANGER-3854 Ranger Java patch J10056 takes time
RANGER-3857 Ranger java patch J10055 takes time
RANGER-3863 Ranger Failed to run on Apple M1 macOS (Apple Silicon)
RANGER-3883 emailchange and passwordchange User REST API's work even when invalid user id is used in the url
RANGER-3885 User REST API /users/firstnames returns only null with status code 204
RANGER-3894 Application is 'unknown' for metastore in plugin status page
RANGER-3897 RangerUserStore cache improvement
RANGER-3898 Ranger Roles cache Improvement
RANGER-3907 Skip auditing of operation like monitorHealth in HDFS Ranger Plugin audit handler
RANGER-3911 NPE fix in RangerDefaultPolicyEvaluator
RANGER-3912 Ranger Policy report for a given user should fetch policies maintained for roles belonging to that user and groups
RANGER-3914 Change sync_source column's datatype from varchar to text
RANGER-3918 Namespace policy that is created in Ranger by HBase Grant command not getting honored
RANGER-3920 When sync'ing users from Ldap, intermittent User/Group/UserGroup membership is missing
RANGER-3941 optimize cache refresh in RangerUserStoreCache
RANGER-3946 ranger-yarn-plugin missing commons-lang-2.6.jar
RANGER-3953 potential NPE during policy-engine initialization
RANGER-3956 Upgrade Commons Text to 1.10.0
RANGER-3959 condition expression validation
RANGER-3966 incorrect roles used in policy evaluation for custom RangerAccessRequest impl
RANGER-3969 Remove os.path.join causing incorrect windows path
RANGER-3970 Expression evaluation improvements
RANGER-3977 Fix Ranger TagRest API deleteTagResourceMapByGuid
RANGER-3989 KMS APIs fail due to ConcurrentModificationException
RANGER-3991 Upgrade underscore-min.js, underscore.js and moment-with-locales.min.js
RANGER-4000 unit test failure in JDK17
RANGER-4008 RangerTagEnricher to ignore invalid resources
RANGER-4014 update getResourceACLs() API to handle resource names having macros in row-filter/masking policies
RANGER-4018 Ranger src packaging should exclude generated/unnecessary files
RANGER-4029 Ranger cannot build with HBase 2.5.x versions because preBalance coprocessor hook syntax changed in HBASE-26147
RANGER-4035 support for policies to refer access-types using category, like Create/Read/Update/Delete/Manage
RANGER-4043 [ugsync]Enumerate Groups will give error on executing 'getent group' command
RANGER-4044 Publish official docker images for ranger to dockerhub
RANGER-4055 Compulsory field firstName can be passed empty or null in the payload while creating user through API
RANGER-4057 [Ranger] /tags/tags/cache/reset api give 200 response for invalid service
RANGER-4064 RANGER-3348 introduces bug in python client for SSL enabled clusters
RANGER-4065 Fix README and PyPI Doc for Ranger Python Client
RANGER-4074 assignPermissionToUser in XUserMgr creates entries with NULL moduleId in x_user_module_perm
RANGER-4079 Python client to use the given Ranger endpoint, instead of its baseURL
RANGER-4102 update TestPolicyACLs unit test to validate ACL count
RANGER-4109 Add unique constraint on resource_signature column of x_rms_service_resource table
RANGER-4110 Upgrade to TLS to version 1.2 -Part2
RANGER-4112 Update servicedef by name results in 400 status code while the same request works with update servicedef using id
RANGER-4113 Upgrade tomcat to 8.5.86
RANGER-4121 NPE in security-zone update validation
RANGER-4123 No policy found for given version
RANGER-4126 Fetching getDBVersion in BaseDao class in the security-admin-web throws Exception for Oracle Database
RANGER-4127 Unable to delete the user if policy is created by same user and added in the policy item
RANGER-4144 Fixed Kafka Test Suite Issues
RANGER-4154 Usersync fails to push users to Ranger, due to missing firstName field
RANGER-4155 Structure of resource(UI) hierarchy in policy form not proper formatted for multiple values.

Tasks

JIRA Summary
RANGER-3780 Ranger - Upgrade tomcat to 8.5.79
RANGER-3782 RANGER - Upgrade spring-security version to 5.6.5
RANGER-3841 update version ranger-2.4 to 2.4.0-SNAPSHOT
RANGER-3960 RANGER - Upgrade spring-security version to 5.7.5
RANGER-3996 Upgrade commons-configuration2 to version 2.8.0
RANGER-4116 Define description/topics/merge strategy for the github repository with .asf.yaml
RANGER-4140 Release Apache Ranger 2.4.0

Tests

JIRA Summary
RANGER-3808 Ranger的REST API接口(/roles/roles/{id}/addUsersAndGroups)本地测试提示404
RANGER-3834 Test cases for RoleREST.java missing (security-admin module)
RANGER-3849 Test cases for ServiceREST.java missing
RANGER-4105 Python script to create/update/delete policies from multiple threads

Further reading