mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
DOD Recert: RM Audit
* improved display so it's easier to see what's going on * audit user creation git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/DEV/DODRECERT@51082 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -326,6 +326,10 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
new AuditEvent("createDispositionSchedule", MSG_CREATE_DISPOSITION_SCHEDULE));
|
new AuditEvent("createDispositionSchedule", MSG_CREATE_DISPOSITION_SCHEDULE));
|
||||||
this.auditEvents.put("unfreeze",
|
this.auditEvents.put("unfreeze",
|
||||||
new AuditEvent("unfreeze", MSG_UNFREEZE));
|
new AuditEvent("unfreeze", MSG_UNFREEZE));
|
||||||
|
|
||||||
|
// Added for DOD compliance
|
||||||
|
this.auditEvents.put("createPerson",
|
||||||
|
new AuditEvent("createPerson", "User Created"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -345,7 +349,11 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
policyComponent.bindClassBehaviour(
|
policyComponent.bindClassBehaviour(
|
||||||
BeforeDeleteNodePolicy.QNAME,
|
BeforeDeleteNodePolicy.QNAME,
|
||||||
RecordsManagementModel.ASPECT_RECORD_COMPONENT_ID,
|
RecordsManagementModel.ASPECT_RECORD_COMPONENT_ID,
|
||||||
new JavaBehaviour(this, "beforeDeleteNode"));
|
new JavaBehaviour(this, "beforeDeleteNode"));
|
||||||
|
policyComponent.bindClassBehaviour(
|
||||||
|
OnCreateNodePolicy.QNAME,
|
||||||
|
ContentModel.TYPE_PERSON,
|
||||||
|
new JavaBehaviour(this, "onCreatePersonNode"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -477,7 +485,12 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
{
|
{
|
||||||
auditRMEvent(childAssocRef.getChildRef(), RM_AUDIT_EVENT_CREATE_RM_OBJECT, null, null);
|
auditRMEvent(childAssocRef.getChildRef(), RM_AUDIT_EVENT_CREATE_RM_OBJECT, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onCreatePersonNode(ChildAssociationRef childAssocRef)
|
||||||
|
{
|
||||||
|
auditRMEvent(childAssocRef.getChildRef(), "createPerson", null, null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
* @since 3.2
|
* @since 3.2
|
||||||
@@ -509,19 +522,9 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
{
|
{
|
||||||
// Deleted nodes will not be available at the end of the transaction. The data needs to
|
// Deleted nodes will not be available at the end of the transaction. The data needs to
|
||||||
// be extracted now and the audit entry needs to be created now.
|
// be extracted now and the audit entry needs to be created now.
|
||||||
Map<String, Serializable> auditMap = new HashMap<String, Serializable>(13);
|
Map<String, Serializable> auditMap = buildAuditMap(nodeRef, eventName);
|
||||||
auditMap.put(
|
|
||||||
AuditApplication.buildPath(
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_EVENT,
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_NAME),
|
|
||||||
eventName);
|
|
||||||
// Action node
|
|
||||||
auditMap.put(
|
|
||||||
AuditApplication.buildPath(
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_EVENT,
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_NODE),
|
|
||||||
nodeRef);
|
|
||||||
auditMap = auditComponent.recordAuditValues(RecordsManagementAuditService.RM_AUDIT_PATH_ROOT, auditMap);
|
auditMap = auditComponent.recordAuditValues(RecordsManagementAuditService.RM_AUDIT_PATH_ROOT, auditMap);
|
||||||
|
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
logger.debug("RM Audit: Audited node deletion: \n" + auditMap);
|
logger.debug("RM Audit: Audited node deletion: \n" + auditMap);
|
||||||
@@ -559,6 +562,31 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
// That is it. The values are queued for the end of the transaction.
|
// That is it. The values are queued for the end of the transaction.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to build audit map
|
||||||
|
*
|
||||||
|
* @param nodeRef
|
||||||
|
* @param eventName
|
||||||
|
* @return
|
||||||
|
* @since 2.0.3
|
||||||
|
*/
|
||||||
|
private Map<String, Serializable> buildAuditMap(NodeRef nodeRef, String eventName)
|
||||||
|
{
|
||||||
|
Map<String, Serializable> auditMap = new HashMap<String, Serializable>(13);
|
||||||
|
auditMap.put(
|
||||||
|
AuditApplication.buildPath(
|
||||||
|
RecordsManagementAuditService.RM_AUDIT_SNIPPET_EVENT,
|
||||||
|
RecordsManagementAuditService.RM_AUDIT_SNIPPET_NAME),
|
||||||
|
eventName);
|
||||||
|
// Action node
|
||||||
|
auditMap.put(
|
||||||
|
AuditApplication.buildPath(
|
||||||
|
RecordsManagementAuditService.RM_AUDIT_SNIPPET_EVENT,
|
||||||
|
RecordsManagementAuditService.RM_AUDIT_SNIPPET_NODE),
|
||||||
|
nodeRef);
|
||||||
|
return auditMap;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A <b>stateless</b> transaction listener for RM auditing. This component picks up the data of
|
* A <b>stateless</b> transaction listener for RM auditing. This component picks up the data of
|
||||||
@@ -619,20 +647,13 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
|
|
||||||
RMAuditNode auditedNode = entry.getValue();
|
RMAuditNode auditedNode = entry.getValue();
|
||||||
|
|
||||||
Map<String, Serializable> auditMap = new HashMap<String, Serializable>(13);
|
|
||||||
// Action description
|
// Action description
|
||||||
String eventName = auditedNode.getEventName();
|
String eventName = auditedNode.getEventName();
|
||||||
auditMap.put(
|
|
||||||
AuditApplication.buildPath(
|
Map<String, Serializable> auditMap = buildAuditMap(nodeRef, eventName);
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_EVENT,
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_NAME),
|
// TODO do we care if the before and after are null??
|
||||||
eventName);
|
|
||||||
// Action node
|
|
||||||
auditMap.put(
|
|
||||||
AuditApplication.buildPath(
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_EVENT,
|
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_NODE),
|
|
||||||
nodeRef);
|
|
||||||
// Property changes
|
// Property changes
|
||||||
Map<QName, Serializable> propertiesBefore = auditedNode.getNodePropertiesBefore();
|
Map<QName, Serializable> propertiesBefore = auditedNode.getNodePropertiesBefore();
|
||||||
Map<QName, Serializable> propertiesAfter = auditedNode.getNodePropertiesAfter();
|
Map<QName, Serializable> propertiesAfter = auditedNode.getNodePropertiesAfter();
|
||||||
@@ -652,6 +673,7 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_CHANGES,
|
RecordsManagementAuditService.RM_AUDIT_SNIPPET_CHANGES,
|
||||||
RecordsManagementAuditService.RM_AUDIT_SNIPPET_AFTER),
|
RecordsManagementAuditService.RM_AUDIT_SNIPPET_AFTER),
|
||||||
(Serializable) deltaPair.getSecond());
|
(Serializable) deltaPair.getSecond());
|
||||||
|
|
||||||
// Audit it
|
// Audit it
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
@@ -1224,7 +1246,18 @@ public class RecordsManagementAuditServiceImpl
|
|||||||
json.put("userRole", entry.getUserRole() == null ? "": entry.getUserRole());
|
json.put("userRole", entry.getUserRole() == null ? "": entry.getUserRole());
|
||||||
json.put("fullName", entry.getFullName() == null ? "": entry.getFullName());
|
json.put("fullName", entry.getFullName() == null ? "": entry.getFullName());
|
||||||
json.put("nodeRef", entry.getNodeRef() == null ? "": entry.getNodeRef());
|
json.put("nodeRef", entry.getNodeRef() == null ? "": entry.getNodeRef());
|
||||||
json.put("nodeName", entry.getNodeName() == null ? "": entry.getNodeName());
|
|
||||||
|
if (entry.getEvent().equals("createPerson") == true && entry.getNodeRef() != null)
|
||||||
|
{
|
||||||
|
NodeRef nodeRef = entry.getNodeRef();
|
||||||
|
String userName = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_USERNAME);
|
||||||
|
json.put("nodeName", userName == null ? "": userName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
json.put("nodeName", entry.getNodeName() == null ? "": entry.getNodeName());
|
||||||
|
}
|
||||||
|
|
||||||
json.put("nodeType", entry.getNodeType() == null ? "": entry.getNodeType());
|
json.put("nodeType", entry.getNodeType() == null ? "": entry.getNodeType());
|
||||||
json.put("event", entry.getEvent() == null ? "": getAuditEventLabel(entry.getEvent()));
|
json.put("event", entry.getEvent() == null ? "": getAuditEventLabel(entry.getEvent()));
|
||||||
json.put("identifier", entry.getIdentifier() == null ? "": entry.getIdentifier());
|
json.put("identifier", entry.getIdentifier() == null ? "": entry.getIdentifier());
|
||||||
|
Reference in New Issue
Block a user