Repository: incubator-ranger
Updated Branches:
  refs/heads/master d0c8e4fc8 -> 70df061dc


RANGER-761 : Transaction logs not getting generated under audit menu admin tab 
if policy name is changed


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/70df061d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/70df061d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/70df061d

Branch: refs/heads/master
Commit: 70df061dcaa2d670e823d44c86e7b11eb036f56d
Parents: d0c8e4f
Author: Gautam Borad <[email protected]>
Authored: Thu Dec 3 10:20:59 2015 +0530
Committer: Gautam Borad <[email protected]>
Committed: Fri Dec 4 09:09:01 2015 +0530

----------------------------------------------------------------------
 .../ranger/service/RangerPolicyService.java     | 35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/70df061d/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 d853972..aaadea7 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
@@ -53,6 +53,7 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
        
        public static final String POLICY_RESOURCE_CLASS_FIELD_NAME = 
"resources";
        public static final String POLICY_ITEM_CLASS_FIELD_NAME = "policyItems";
+       public static final String POLICY_NAME_CLASS_FIELD_NAME = "name";
 
        static HashMap<String, VTrxLogAttr> trxLogAttrs = new HashMap<String, 
VTrxLogAttr>();
        String actionCreate;
@@ -178,6 +179,8 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                                value = 
processPolicyResourcesForTrxLog(field.get(vObj));
                        } else if 
(fieldName.equalsIgnoreCase(POLICY_ITEM_CLASS_FIELD_NAME)) {
                                value = 
processPolicyItemsForTrxLog(field.get(vObj));
+                       } else if 
(fieldName.equalsIgnoreCase(POLICY_NAME_CLASS_FIELD_NAME)){
+                               value = 
processPolicyNameForTrxLog(field.get(vObj));
                        } else {
                                value = "" + field.get(vObj);
                        }
@@ -216,6 +219,10 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                                        if (oldPolicy != null) {
                                                oldValue = 
processPolicyItemsForTrxLog(oldPolicy.getPolicyItems());
                                        }
+                               } else if 
(fieldName.equalsIgnoreCase(POLICY_NAME_CLASS_FIELD_NAME)){
+                                       if (oldPolicy != null) {
+                                               oldValue = 
processPolicyNameForTrxLog(oldPolicy.getName());
+                                       }
                                }
                                if (oldValue == null || 
value.equalsIgnoreCase(oldValue)) {
                                        return null;
@@ -229,6 +236,11 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                                        if(compareTwoPolicyItemList(value, 
oldValue)) {
                                                return null;
                                        }
+                               } else if 
(fieldName.equalsIgnoreCase(POLICY_NAME_CLASS_FIELD_NAME)) {
+                                       //compare old and new policyName
+                                       if(compareTwoPolicyName(value, 
oldValue)) {
+                                               return null;
+                                       }
                                }
                                xTrxLog.setPreviousValue(oldValue);
                                xTrxLog.setNewValue(value);
@@ -368,4 +380,27 @@ public class RangerPolicyService extends 
RangerPolicyServiceBase<XXPolicy, Range
                return ret;
        }
 
+       private boolean compareTwoPolicyName(String value, String oldValue) {
+               if (value==null && oldValue==null) {
+                       return 
org.apache.commons.lang.StringUtils.equals(value, oldValue);
+               }
+               if (value!=null && oldValue!=null && value.trim().isEmpty() && 
oldValue.trim().isEmpty()) {
+                       return true;
+               }
+               if (stringUtil.isEmpty(value) || stringUtil.isEmpty(oldValue)) {
+                       return false;
+               }
+               if(!value.equals(oldValue)) {
+                       return false;
+               }
+               return true;
+       }
+
+       private String processPolicyNameForTrxLog(Object value) {
+               if (value == null) {
+                       return "";
+               }
+               String name = (String) value;
+               return name;
+       }
 }

Reply via email to