Repository: incubator-ranger Updated Branches: refs/heads/master 760fbdbae -> a0d63e751
RANGER-882: fix inconsistent null check in previous update Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/a0d63e75 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/a0d63e75 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/a0d63e75 Branch: refs/heads/master Commit: a0d63e7518f7b6ab2f02ea416b1433ba80cf193b Parents: 760fbdb Author: Madhan Neethiraj <[email protected]> Authored: Sat Mar 26 01:31:45 2016 -0700 Committer: Madhan Neethiraj <[email protected]> Committed: Sun Mar 27 18:55:37 2016 -0700 ---------------------------------------------------------------------- .../model/validation/RangerPolicyValidator.java | 74 ++++++++++---------- 1 file changed, 38 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a0d63e75/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerPolicyValidator.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerPolicyValidator.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerPolicyValidator.java index 5933a33..cab7006 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerPolicyValidator.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerPolicyValidator.java @@ -606,46 +606,48 @@ public class RangerPolicyValidator extends RangerValidator { for (Map.Entry<String, RangerPolicyResource> entry : resourceMap.entrySet()) { String name = entry.getKey(); RangerPolicyResource policyResource = entry.getValue(); - if(policyResource != null && CollectionUtils.isNotEmpty(policyResource.getValues())){ - Set<String> resources = new HashSet<String>(policyResource.getValues()); - for (String aValue : resources) { - if (StringUtils.isBlank(aValue)) { - policyResource.getValues().remove(aValue); + if(policyResource != null) { + if(CollectionUtils.isNotEmpty(policyResource.getValues())) { + Set<String> resources = new HashSet<String>(policyResource.getValues()); + for (String aValue : resources) { + if (StringUtils.isBlank(aValue)) { + policyResource.getValues().remove(aValue); + } } } - } - if(CollectionUtils.isEmpty(policyResource.getValues())){ - ValidationErrorCode error = ValidationErrorCode.POLICY_VALIDATION_ERR_MISSING_RESOURCE_LIST; - if(LOG.isDebugEnabled()) { - LOG.debug(String.format("Resource list was empty or contains null: value[%s], resource-name[%s], service-def-name[%s]", policyResource.getValues(), name, serviceDef.getName())); + + if(CollectionUtils.isEmpty(policyResource.getValues())){ + ValidationErrorCode error = ValidationErrorCode.POLICY_VALIDATION_ERR_MISSING_RESOURCE_LIST; + if(LOG.isDebugEnabled()) { + LOG.debug(String.format("Resource list was empty or contains null: value[%s], resource-name[%s], service-def-name[%s]", policyResource.getValues(), name, serviceDef.getName())); + } + failures.add(new ValidationFailureDetailsBuilder() + .field("resource-values") + .subField(name) + .isMissing() + .becauseOf(error.getMessage(name)) + .errorCode(error.getErrorCode()) + .build()); + valid=false; } - failures.add(new ValidationFailureDetailsBuilder() - .field("resource-values") - .subField(name) - .isMissing() - .becauseOf(error.getMessage(name)) - .errorCode(error.getErrorCode()) - .build()); - valid=false; - } - if (validationRegExMap.containsKey(name) && policyResource != null && CollectionUtils.isNotEmpty(policyResource.getValues())) { - String regEx = validationRegExMap.get(name); - for (String aValue : policyResource.getValues()) { - if (StringUtils.isBlank(aValue)) { - LOG.debug("resource value was blank"); - } else if (!aValue.matches(regEx)) { - if (LOG.isDebugEnabled()) { - LOG.debug(String.format("Resource failed regex check: value[%s], resource-name[%s], regEx[%s], service-def-name[%s]", aValue, name, regEx, serviceDef.getName())); + + if (validationRegExMap.containsKey(name) && CollectionUtils.isNotEmpty(policyResource.getValues())) { + String regEx = validationRegExMap.get(name); + for (String aValue : policyResource.getValues()) { + if (!aValue.matches(regEx)) { + if (LOG.isDebugEnabled()) { + LOG.debug(String.format("Resource failed regex check: value[%s], resource-name[%s], regEx[%s], service-def-name[%s]", aValue, name, regEx, serviceDef.getName())); + } + ValidationErrorCode error = ValidationErrorCode.POLICY_VALIDATION_ERR_INVALID_RESOURCE_VALUE_REGEX; + failures.add(new ValidationFailureDetailsBuilder() + .field("resource-values") + .subField(name) + .isSemanticallyIncorrect() + .becauseOf(error.getMessage(aValue, name)) + .errorCode(error.getErrorCode()) + .build()); + valid = false; } - ValidationErrorCode error = ValidationErrorCode.POLICY_VALIDATION_ERR_INVALID_RESOURCE_VALUE_REGEX; - failures.add(new ValidationFailureDetailsBuilder() - .field("resource-values") - .subField(name) - .isSemanticallyIncorrect() - .becauseOf(error.getMessage(aValue, name)) - .errorCode(error.getErrorCode()) - .build()); - valid = false; } } }
