RANGER-2204: Fixed issue where audit log values for policy service are not processed properly
Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/8e19e67e Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/8e19e67e Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/8e19e67e Branch: refs/heads/ranger-1.1 Commit: 8e19e67e20cdf9757df2d46a8fae30602376106e Parents: d4b5722 Author: Sailaja Polavarapu <[email protected]> Authored: Fri Aug 31 10:02:23 2018 -0700 Committer: Mehul Parikh <[email protected]> Committed: Tue Sep 4 11:51:47 2018 +0530 ---------------------------------------------------------------------- .../ranger/service/RangerPolicyService.java | 43 +++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/8e19e67e/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java index ad3984d..08baf89 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerPolicyService.java @@ -147,7 +147,7 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range } List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>(); Field[] fields = vObj.getClass().getDeclaredFields(); - + try { Field nameField = vObj.getClass().getDeclaredField("name"); @@ -236,14 +236,16 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range } } else if (ROWFILTER_POLICY_ITEM_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { value = processRowFilterPolicyItemForTrxLog(field.get(vObj)); - } else if (IS_ENABLED_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { - value = String.valueOf(processIsEnabledClassFieldNameForTrxLog(field.get(vObj))); - } else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { - value = processPolicyLabelsClassFieldNameForTrxLog(field.get(vObj)); - } else if (POLICY_VALIDITYSCHEDULES_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { - value = processValiditySchedulesClassFieldNameForTrxLog(field.get(vObj)); - } else if (POLICY_PRIORITY_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + } else if (IS_ENABLED_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + value = processIsEnabledClassFieldNameForTrxLog(field.get(vObj)); + } else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + value = processPolicyLabelsClassFieldNameForTrxLog(field.get(vObj)); + } else if (POLICY_VALIDITYSCHEDULES_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + value = processValiditySchedulesClassFieldNameForTrxLog(field.get(vObj)); + } else if (POLICY_PRIORITY_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { value = processPriorityClassFieldNameForTrxLog(field.get(vObj)); + } else if (IS_AUDIT_ENABLED_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + value = processIsAuditEnabledClassFieldNameForTrxLog(field.get(vObj)); } else { value = "" + field.get(vObj); } @@ -330,9 +332,13 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range } }else if (IS_ENABLED_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { if (oldPolicy != null) { - oldValue = String.valueOf(processIsEnabledClassFieldNameForTrxLog(oldPolicy.getIsEnabled())); + oldValue = processIsEnabledClassFieldNameForTrxLog(oldPolicy.getIsEnabled()); } - } else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + } else if (IS_AUDIT_ENABLED_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + if (oldPolicy != null) { + oldValue = processIsAuditEnabledClassFieldNameForTrxLog(oldPolicy.getIsAuditEnabled()); + } + }else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { oldValue = processPolicyLabelsClassFieldNameForTrxLog(oldPolicy.getPolicyLabels()); } else if (POLICY_VALIDITYSCHEDULES_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { oldValue = processValiditySchedulesClassFieldNameForTrxLog(oldPolicy.getValiditySchedules()); @@ -399,11 +405,11 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range return null; } } else if (IS_AUDIT_ENABLED_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { - if (compareTwoPolicyName(value, oldValue)) { - return null; - } - } else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { - if (compareTwoPolicyLabelList(value, oldValue)) { + if (compareTwoPolicyName(value, oldValue)) { + return null; + } + } else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { + if (compareTwoPolicyLabelList(value, oldValue)) { return null; } } @@ -664,6 +670,13 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range return isEnabled; } + private String processIsAuditEnabledClassFieldNameForTrxLog(Object value) { + if(value == null) + return null; + String isAuditEnabled = String.valueOf(value); + return isAuditEnabled; + } + private boolean compareTwoDataMaskingPolicyItemList(String value, String oldValue) { if (value == null && oldValue == null) { return true;
