This is an automated email from the ASF dual-hosted git repository. madhan pushed a commit to branch ranger-2.5 in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.5 by this push: new cd7f50755 RANGER-4864: fixed incorrect admin audit log for policy import operation cd7f50755 is described below commit cd7f5075543d8b604440a2f73e2752baab6c5c9a Author: Rakesh Gupta <rakesh.gupta.dev...@gmail.com> AuthorDate: Tue Jul 23 17:22:49 2024 +0530 RANGER-4864: fixed incorrect admin audit log for policy import operation Signed-off-by: Madhan Neethiraj <mad...@apache.org> --- .../main/java/org/apache/ranger/biz/ServiceDBStore.java | 3 ++- .../apache/ranger/service/RangerAuditedModelService.java | 14 +++++++++++++- .../org/apache/ranger/service/RangerTrxLogV2Service.java | 1 + .../webapp/react-webapp/src/views/AuditEvent/AdminLogs.jsx | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java index 3479d65d7..893abf516 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java @@ -4506,10 +4506,11 @@ public class ServiceDBStore extends AbstractServiceStore { Map<String, Object> metaDataInfo = new LinkedHashMap<>(); UserSessionBase usb = ContextUtil.getCurrentUserSession(); String userId = usb!=null ? usb.getLoginId() : null; + DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy h:mm:ss a"); metaDataInfo.put(HOSTNAME, LOCAL_HOSTNAME); metaDataInfo.put(USER_NAME, userId); - metaDataInfo.put(TIMESTAMP, MiscUtil.getUTCDateForLocalDate(new Date())); + metaDataInfo.put(TIMESTAMP, formatter.format(MiscUtil.getUTCDateForLocalDate(new Date()))); metaDataInfo.put(RANGER_VERSION, RangerVersionInfo.getVersion()); return metaDataInfo; diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java index ee1eb371e..dfecf720f 100755 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java @@ -139,7 +139,9 @@ public abstract class RangerAuditedModelService<T extends XXDBBase, V extends Ra processFieldToCreateTrxLog(trxLog, obj, oldObj, action, objChangeInfo); } - ret.add(new XXTrxLogV2(classType, obj.getId(), getObjectName(obj), getParentObjectType(obj, oldObj), getParentObjectId(obj, oldObj), getParentObjectName(obj, oldObj), toActionString(action), JsonUtilsV2.objToJson(objChangeInfo))); + if(objChangeInfo.getAttributes() != null && objChangeInfo.getAttributes().size() > 0) { + ret.add(new XXTrxLogV2(classType, obj.getId(), getObjectName(obj), getParentObjectType(obj, oldObj), getParentObjectId(obj, oldObj), getParentObjectName(obj, oldObj), toActionString(action), JsonUtilsV2.objToJson(objChangeInfo))); + } } catch (Exception excp) { LOG.warn("failed to get transaction log for object: type=" + obj.getClass().getName() + ", id=" + obj.getId(), excp); } @@ -204,6 +206,12 @@ public abstract class RangerAuditedModelService<T extends XXDBBase, V extends Ra } else if (action == OPERATION_UPDATE_CONTEXT) { prevValue = getTrxLogAttrValue(oldObj, trxLogAttr); newValue = value; + } else if (action == OPERATION_IMPORT_CREATE_CONTEXT) { + prevValue = null; + newValue = value; + } else if (action == OPERATION_IMPORT_DELETE_CONTEXT) { + prevValue = value; + newValue = null; } else { prevValue = null; newValue = null; @@ -224,6 +232,10 @@ public abstract class RangerAuditedModelService<T extends XXDBBase, V extends Ra return "update"; case OPERATION_DELETE_CONTEXT: return "delete"; + case OPERATION_IMPORT_CREATE_CONTEXT: + return "Import Create"; + case OPERATION_IMPORT_DELETE_CONTEXT: + return "Import Delete"; } return "unknown"; diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerTrxLogV2Service.java b/security-admin/src/main/java/org/apache/ranger/service/RangerTrxLogV2Service.java index 3b9a83a95..3eb2a707e 100644 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerTrxLogV2Service.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerTrxLogV2Service.java @@ -68,6 +68,7 @@ public class RangerTrxLogV2Service { searchFields.add(new SearchField("objectClassType", "obj.objectClassType", SearchField.DATA_TYPE.INT_LIST, SearchField.SEARCH_TYPE.FULL)); searchFields.add(new SearchField("objectId", "obj.objectId", SearchField.DATA_TYPE.INT_LIST, SearchField.SEARCH_TYPE.FULL)); + sortFields.add(new SortField("id", "obj.id", true, SortField.SORT_ORDER.DESC)); sortFields.add(new SortField("createDate", "obj.createTime", true, SortField.SORT_ORDER.DESC)); } diff --git a/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AdminLogs.jsx b/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AdminLogs.jsx index 669266a33..96c59625d 100644 --- a/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AdminLogs.jsx +++ b/security-admin/src/main/webapp/react-webapp/src/views/AuditEvent/AdminLogs.jsx @@ -360,7 +360,7 @@ function Admin() { const getDefaultSort = React.useMemo( () => [ { - id: "createDate", + id: "id", desc: true } ],