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()));