Package org.alfresco.repo.audit
Class AuditComponentImpl
- java.lang.Object
-
- org.alfresco.repo.audit.AuditComponentImpl
-
- All Implemented Interfaces:
AuditComponent
public class AuditComponentImpl extends java.lang.Object implements AuditComponent
Component that records audit values as well as providing the query implementation.To turn on logging of all potentially auditable data, turn on logging for:
TODO: Respect audit internal - at the moment audit internal is fixed to false.
org.alfresco.repo.audit.inbound.- Since:
- 3.2 (in its current form)
- Author:
- Derek Hulley
-
-
Constructor Summary
Constructors Constructor Description AuditComponentImpl()Default constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanareAuditValuesRequired()Determine whether the audit infrastructure expects audit values to be passed in.booleanareAuditValuesRequired(java.lang.String path)Determines if audit values are required based on whether there are any audit applications registered to record data for the given path.voidauditQuery(AuditService.AuditQueryCallback callback, AuditQueryParameters parameters, int maxResults)Find audit entries using the given parametersintdeleteAuditEntries(java.lang.String applicationName, java.lang.Long fromTime, java.lang.Long toTime)Delete audit entries for the given application and time rangeintdeleteAuditEntries(java.util.List<java.lang.Long> auditEntryIds)Delete a discrete list of audit entries based on IDintdeleteAuditEntriesByIdRange(java.lang.String applicationName, java.lang.Long fromId, java.lang.Long toId)Delete audit entries for the given application and id rangevoiddisableAudit(java.lang.String applicationName, java.lang.String path)Disable auditing (if it is not already disabled) for all paths that contain the given path.voidenableAudit(java.lang.String applicationName, java.lang.String path)Enable auditing (if it is not already enabled) for all paths that contain the given path.java.util.Map<java.lang.String,AuditApplication>getAuditApplications()Get all registered audit applications, whether active or not.booleanisAuditEnabled()Determines whether audit is globally enabled or disabled.booleanisAuditPathEnabled(java.lang.String applicationName, java.lang.String path)Check if an audit path is enabled.java.util.Map<java.lang.String,java.io.Serializable>recordAuditValues(java.lang.String rootPath, java.util.Map<java.lang.String,java.io.Serializable> values)Create an audit entry for the given map of values.java.util.Map<java.lang.String,java.io.Serializable>recordAuditValuesImpl(java.util.Map<java.lang.String,java.io.Serializable> mappedValues)java.util.Map<java.lang.String,java.io.Serializable>recordAuditValuesWithUserFilter(java.lang.String rootPath, java.util.Map<java.lang.String,java.io.Serializable> values, boolean useUserFilter)The same asAuditComponent.recordAuditValues(String, Map), but with controlled usage of userFiltervoidresetDisabledPaths(java.lang.String applicationName)Remove all disabled paths i.e.voidsetAuditDAO(AuditDAO auditDAO)Set the DAO for accessing audit datavoidsetAuditEnabled(boolean enable)Switch auditing on or offvoidsetAuditFilter(AuditFilter auditFilter)Set the component used to filter which audit events to recordvoidsetAuditModelRegistry(AuditModelRegistryImpl auditModelRegistry)Set the registry holding the audit modelsvoidsetPropertyValueDAO(PropertyValueDAO propertyValueDAO)Set the DAO for manipulating property valuesvoidsetTransactionService(TransactionService transactionService)Set the service used to start new transactionsvoidsetUserAuditFilter(UserAuditFilter userAuditFilter)
-
-
-
Method Detail
-
setAuditModelRegistry
public void setAuditModelRegistry(AuditModelRegistryImpl auditModelRegistry)
Set the registry holding the audit models- Since:
- 3.2
-
setPropertyValueDAO
public void setPropertyValueDAO(PropertyValueDAO propertyValueDAO)
Set the DAO for manipulating property values- Since:
- 3.2
-
setAuditDAO
public void setAuditDAO(AuditDAO auditDAO)
Set the DAO for accessing audit data- Since:
- 3.2
-
setTransactionService
public void setTransactionService(TransactionService transactionService)
Set the service used to start new transactions
-
setAuditFilter
public void setAuditFilter(AuditFilter auditFilter)
Set the component used to filter which audit events to record
-
setUserAuditFilter
public void setUserAuditFilter(UserAuditFilter userAuditFilter)
- Specified by:
setUserAuditFilterin interfaceAuditComponent- Parameters:
userAuditFilter- UserAuditFilter
-
deleteAuditEntries
public int deleteAuditEntries(java.lang.String applicationName, java.lang.Long fromTime, java.lang.Long toTime)Delete audit entries for the given application and time range- Specified by:
deleteAuditEntriesin interfaceAuditComponent- Parameters:
applicationName- the name of the applicationfromTime- the start time of entries to remove (inclusive and optional)toTime- the end time of entries to remove (exclusive and optional)- Returns:
- Returns the number of entries deleted
- Since:
- 3.2
-
deleteAuditEntriesByIdRange
public int deleteAuditEntriesByIdRange(java.lang.String applicationName, java.lang.Long fromId, java.lang.Long toId)Delete audit entries for the given application and id range- Specified by:
deleteAuditEntriesByIdRangein interfaceAuditComponent- Parameters:
applicationName- the name of the applicationfromId- the start time of entries to remove (inclusive and optional)toId- the end time of entries to remove (exclusive and optional)- Returns:
- Returns the number of entries deleted
- Since:
- 5.2.2
-
deleteAuditEntries
public int deleteAuditEntries(java.util.List<java.lang.Long> auditEntryIds)
Delete a discrete list of audit entries based on ID- Specified by:
deleteAuditEntriesin interfaceAuditComponent- Parameters:
auditEntryIds- the audit entry IDs to delete- Returns:
- Returns the number of entries deleted
- Since:
- 3.2
-
isAuditEnabled
public boolean isAuditEnabled()
Determines whether audit is globally enabled or disabled.- Specified by:
isAuditEnabledin interfaceAuditComponent- Returns:
- Returns
trueif audit is enabled - Since:
- 3.2
-
setAuditEnabled
public void setAuditEnabled(boolean enable)
Switch auditing on or off- Specified by:
setAuditEnabledin interfaceAuditComponent- Parameters:
enable- true to enable auditing or false to disable- Since:
- 3.4
-
getAuditApplications
public java.util.Map<java.lang.String,AuditApplication> getAuditApplications()
Get all registered audit applications, whether active or not.- Specified by:
getAuditApplicationsin interfaceAuditComponent- Returns:
- Returns a map of registered audit applications keyed by name
- Since:
- 3.4
-
areAuditValuesRequired
public boolean areAuditValuesRequired()
Determine whether the audit infrastructure expects audit values to be passed in. This is a helper method to allow optimizations in the client code. Reasons why this method might return false are: auditing is disabled; no audit applications have been registered. Sometimes, depending on the log level, this method may always return true. Note that if DEBUG is on for the theINBOUND_LOGGER, then true will always be returned.- Specified by:
areAuditValuesRequiredin interfaceAuditComponent- Returns:
- Returns
trueif the calling code (data producers) should go ahead and generate the data forrecording. - Since:
- 3.2
-
areAuditValuesRequired
public boolean areAuditValuesRequired(java.lang.String path)
Determines if audit values are required based on whether there are any audit applications registered to record data for the given path. This helper method gives data producers a shortcut in the event that nothing would be recorded in any event. Note that if DEBUG is on for the theINBOUND_LOGGER, then true will always be returned.- Specified by:
areAuditValuesRequiredin interfaceAuditComponent- Parameters:
path- the audit path- Returns:
- Returns true if there is at least one audit application registered to handle the given path.
- Since:
- 3.4
-
isAuditPathEnabled
public boolean isAuditPathEnabled(java.lang.String applicationName, java.lang.String path)Check if an audit path is enabled. The path will be disabled if it or any higher path has been explicitly disabled. Any disabled path will not be processed when data is audited.- Specified by:
isAuditPathEnabledin interfaceAuditComponent- Parameters:
applicationName- the name of the application being logged topath- the audit path to check or null to assume the application's root path- Returns:
- Returns true if the audit path has been disabled
- Since:
- 3.2
-
enableAudit
public void enableAudit(java.lang.String applicationName, java.lang.String path)Enable auditing (if it is not already enabled) for all paths that contain the given path. The path is the path as originally logged and not the path that the generated data may contain - although this would be similarly enabled.If the enabled
- Specified by:
enableAuditin interfaceAuditComponent- Parameters:
applicationName- the name of the application being logged topath- the audit path to check or null to assume the application's root path- Since:
- 3.2
-
disableAudit
public void disableAudit(java.lang.String applicationName, java.lang.String path)Disable auditing (if it is not already disabled) for all paths that contain the given path. The path is the path as originally logged and not the path that the generated data may contain - although this would be similarly disabled.If the path is /x/y then any data paths that start with /x/y will be stripped out before data generators and data recorders are applied. If the path represents the root path of the application, then auditing for that application is effectively disabled.
- Specified by:
disableAuditin interfaceAuditComponent- Parameters:
applicationName- the name of the application being logged topath- the audit path to check or null to assume the application's root path- Since:
- 3.2
-
resetDisabledPaths
public void resetDisabledPaths(java.lang.String applicationName)
Remove all disabled paths i.e. enable all per-path based auditing. Auditing may still be disabled globally. This is primarily for test purposes; applications should know which paths needenablingordisabled.- Specified by:
resetDisabledPathsin interfaceAuditComponent- Parameters:
applicationName- the name of the application- Since:
- 3.2
-
recordAuditValues
public java.util.Map<java.lang.String,java.io.Serializable> recordAuditValues(java.lang.String rootPath, java.util.Map<java.lang.String,java.io.Serializable> values)Description copied from interface:AuditComponentCreate an audit entry for the given map of values. The map key is a path - starting with '/' (AuditApplication.AUDIT_PATH_SEPARATOR) - relative to the root path provided. The root path and value keys are combined to produce a map of data keyed by full path. This fully-pathed map is then passed through theaudit path mapper. The result may yield data destined for several differentaudit applications. depending on the data extraction and generation defined in the applications, values (or derived values) may be recorded against several audit entries (one per application represented). The return values reflect what was actually persisted and is controlled by the data extractors defined in the audit configuration. A new read-write transaction is started if there are values to write that there is not a viable transaction present.- Specified by:
recordAuditValuesin interfaceAuditComponent- Parameters:
rootPath- a base path ofAuditPathkey entries concatenated with the path separator '/' (AuditApplication.AUDIT_PATH_SEPARATOR)values- the values to audit mapped byAuditPathkey relative to root path (may be null)- Returns:
- Returns the values that were actually persisted, keyed by their full path.
-
recordAuditValuesWithUserFilter
public java.util.Map<java.lang.String,java.io.Serializable> recordAuditValuesWithUserFilter(java.lang.String rootPath, java.util.Map<java.lang.String,java.io.Serializable> values, boolean useUserFilter)Description copied from interface:AuditComponentThe same asAuditComponent.recordAuditValues(String, Map), but with controlled usage of userFilter- Specified by:
recordAuditValuesWithUserFilterin interfaceAuditComponent- Parameters:
rootPath- a base path ofAuditPathkey entries concatenated with the path separator '/' (AuditApplication.AUDIT_PATH_SEPARATOR)values- the values to audit mapped byAuditPathkey relative to root path (may be null)useUserFilter- if false the user filter is disabled.- Returns:
- Returns the values that were actually persisted, keyed by their full path.
-
recordAuditValuesImpl
public java.util.Map<java.lang.String,java.io.Serializable> recordAuditValuesImpl(java.util.Map<java.lang.String,java.io.Serializable> mappedValues)
- Since:
- 3.2
-
auditQuery
public void auditQuery(AuditService.AuditQueryCallback callback, AuditQueryParameters parameters, int maxResults)
Find audit entries using the given parameters- Specified by:
auditQueryin interfaceAuditComponent- Parameters:
callback- the data callback per entryparameters- the parameters for the query (may not be null)maxResults- the maximum number of results to retrieve (must be greater than 0)
-
-