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

mehul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 5f8e3c1b7 RANGER-4319: Restricting policy name character to 
configurable length
5f8e3c1b7 is described below

commit 5f8e3c1b7572d842f19a045dde6ed44209246806
Author: RakeshGuptaDev <[email protected]>
AuthorDate: Mon Jul 17 11:22:03 2023 +0530

    RANGER-4319: Restricting policy name character to configurable length
    
    Signed-off-by: Mehul Parikh <[email protected]>
---
 .../main/java/org/apache/ranger/rest/ServiceREST.java    | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git 
a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java 
b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index 429b9e5bc..86959423c 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -261,6 +261,9 @@ public class ServiceREST {
        private RangerPolicyEngineOptions defaultAdminOptions;
        private final RangerAdminConfig   config = 
RangerAdminConfig.getInstance();
 
+       private final int maxPolicyNameLength = 
config.getInt("ranger.policyname.maxlength", 255);
+       private final boolean isPolicyNameLengthValidationEnabled = 
config.getBoolean("ranger.policyname.maxlength.validation.enabled", true);
+
        public ServiceREST() {
        }
 
@@ -1809,6 +1812,13 @@ public class ServiceREST {
                        if(RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
                                perf = RangerPerfTracer.getPerfTracer(PERF_LOG, 
"ServiceREST.updatePolicy(policyId=" + policy.getId() + ")");
                        }
+                       if (isPolicyNameLengthValidationEnabled) {
+                               if (policy.getName().length() > 
maxPolicyNameLength) {
+                                       throw restErrorUtil.createRESTException(
+                                                       "Policy name should not 
be longer than " + maxPolicyNameLength + " characters",
+                                                       
MessageEnums.INPUT_DATA_OUT_OF_BOUND, null, "policy name", "" + 
policy.getName());
+                               }
+                       }
                        RangerPolicyValidator validator = 
validatorFactory.getPolicyValidator(svcStore);
                        validator.validate(policy, Action.UPDATE, 
bizUtil.isAdmin() || isServiceAdmin(policy.getService()) || 
isZoneAdmin(policy.getZoneName()));
 
@@ -4470,6 +4480,12 @@ public class ServiceREST {
                        if (LOG.isDebugEnabled()) {
                                LOG.debug("Policy did not have its name set!  
Ok, setting name to [" + name + "]");
                        }
+               } else if (isPolicyNameLengthValidationEnabled) {
+                       if (policy.getName().length() > maxPolicyNameLength) {
+                               throw restErrorUtil.createRESTException(
+                                               "Policy name should not be 
longer than " + maxPolicyNameLength + " characters",
+                                               
MessageEnums.INPUT_DATA_OUT_OF_BOUND, null, "policy name", "" + 
policy.getName());
+                       }
                }
                RangerPolicyValidator validator = 
validatorFactory.getPolicyValidator(svcStore);
                validator.validate(policy, Action.CREATE, bizUtil.isAdmin() || 
isServiceAdmin(policy.getService()) || isZoneAdmin(policy.getZoneName()));

Reply via email to