You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2023/08/28 06:26:36 UTC
[ranger] branch master updated: RANGER-4319: Restricting policy name character to configurable length
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 <ra...@gmail.com>
AuthorDate: Mon Jul 17 11:22:03 2023 +0530
RANGER-4319: Restricting policy name character to configurable length
Signed-off-by: Mehul Parikh <me...@apache.org>
---
.../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()));