Skip to content

Commit

Permalink
RANGER-4319: Restricting policy name character to configurable length
Browse files Browse the repository at this point in the history
Signed-off-by: Mehul Parikh <[email protected]>
  • Loading branch information
RakeshGuptaDev authored and mehulbparikh committed Aug 28, 2023
1 parent 2da8a1f commit 5f8e3c1
Showing 1 changed file with 16 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
}

Expand Down Expand Up @@ -1809,6 +1812,13 @@ public RangerPolicy updatePolicy(RangerPolicy policy, @PathParam("id") Long id)
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()));

Expand Down Expand Up @@ -4470,6 +4480,12 @@ private RangerPolicy createPolicyUnconditionally(RangerPolicy policy) throws Exc
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()));
Expand Down

0 comments on commit 5f8e3c1

Please sign in to comment.