Repository: ranger Updated Branches: refs/heads/master a7d51d496 -> 94d0566d2
RANGER-2000: Create transaction log when policy validity schedule is updated Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/94d0566d Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/94d0566d Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/94d0566d Branch: refs/heads/master Commit: 94d0566d21a64b795c9a4844354960605bc1f9d9 Parents: a7d51d4 Author: Abhay Kulkarni <akulka...@hortonworks.com> Authored: Wed Mar 14 11:09:05 2018 -0700 Committer: Abhay Kulkarni <akulka...@hortonworks.com> Committed: Wed Mar 14 11:09:05 2018 -0700 ---------------------------------------------------------------------- .../ranger/service/RangerPolicyService.java | 22 +++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/94d0566d/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 fb693e3..98ed9fe 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 @@ -41,6 +41,7 @@ import org.apache.ranger.plugin.model.RangerPolicy.RangerDataMaskPolicyItem; import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem; import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource; import org.apache.ranger.plugin.model.RangerPolicy.RangerRowFilterPolicyItem; +import org.apache.ranger.plugin.model.RangerValiditySchedule; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; @@ -69,6 +70,7 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range public static final String IS_ENABLED_CLASS_FIELD_NAME="isEnabled"; public static final String IS_AUDIT_ENABLED_CLASS_FIELD_NAME="isAuditEnabled"; public static final String POLICY_LABELS_CLASS_FIELD_NAME="policyLabels"; + public static final String POLICY_VALIDITYSCHEDULES_CLASS_FIELD_NAME="validitySchedules"; static HashMap<String, VTrxLogAttr> trxLogAttrs = new HashMap<String, VTrxLogAttr>(); String actionCreate; @@ -87,7 +89,8 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range trxLogAttrs.put("dataMaskPolicyItems", new VTrxLogAttr("dataMaskPolicyItems", "Masked Policy Items", false)); trxLogAttrs.put("rowFilterPolicyItems", new VTrxLogAttr("rowFilterPolicyItems", "Row level filter Policy Items", false)); trxLogAttrs.put("isAuditEnabled", new VTrxLogAttr("isAuditEnabled", "Audit Status", false)); - trxLogAttrs.put("policyLabels", new VTrxLogAttr("policyLabels", "Policy Labels", false)); + trxLogAttrs.put("policyLabels", new VTrxLogAttr("policyLabels", "Policy Labels", false)); + trxLogAttrs.put("validitySchedules", new VTrxLogAttr("validitySchedules", "Validity Schedules", false)); } public RangerPolicyService() { @@ -236,6 +239,8 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range 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 { value = "" + field.get(vObj); } @@ -326,8 +331,10 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range if (oldPolicy != null) { oldValue = String.valueOf(processIsEnabledClassFieldNameForTrxLog(oldPolicy.getIsEnabled())); } - } else if (POLICY_LABELS_CLASS_FIELD_NAME.equalsIgnoreCase(fieldName)) { - oldValue = processPolicyLabelsClassFieldNameForTrxLog(oldPolicy.getPolicyLabels()); + } 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()); } if (oldValue == null || oldValue.equalsIgnoreCase(value)) { return null; @@ -599,6 +606,15 @@ public class RangerPolicyService extends RangerPolicyServiceBase<XXPolicy, Range String ret = jsonUtil.readListToString(policyLabels); return ret; } + @SuppressWarnings("unchecked") + private String processValiditySchedulesClassFieldNameForTrxLog(Object value) { + if (value == null) { + return ""; + } + List<RangerValiditySchedule> validitySchedules = (List<RangerValiditySchedule>) value; + String ret = jsonUtil.readListToString(validitySchedules); + return ret; + } @SuppressWarnings("unchecked") private String processDataMaskPolicyItemsForTrxLog(Object value) {