为此,您必须修改负责生成 CMIS ChangeLog 事件的 Alfresco 的审核配置文件。这个文件是alfresco-audit-cmis.xml,它可以在alfresco-repository-5.2.g.jar(版本号可能不同)里面找到,它本身就在alfresco.war的WEB-INF/lib文件夹里面。
您必须向该文件添加一个 PathMap 和一个 AuditPath,如下所述:
<PathMap source="/alfresco-api/post/FileFolderService/rename"
target="/CMISChangeLog/UPDATED" />
...在<PathMappings>,和
<AuditPath key="fileFolderRef">
<RecordValue key="value" dataExtractor="simpleValue" />
</AuditPath>
...在<AuditPath key="UPDATED"> 的<AuditPath key="args"> 中。
在此答案的底部,我将整个修改后的 alfresco-audit-cmis.xml 粘贴为 Alfresco Community 5.2.0 201707 作为示例,请注意您的基本文件可能不同,因此最好将修改应用于您的 Alfresco 自己的 alfresco-audit-cmis.xml。
为了部署该文件以便 Alfresco 实际使用它,请按照以下说明操作:https://stackoverflow.com/a/48221347/226958
例子:
<?xml version="1.0" encoding="UTF-8"?>
<Audit xmlns="http://www.alfresco.org/repo/audit/model/3.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.alfresco.org/repo/audit/model/3.2 alfresco-audit-3.2.xsd">
<DataExtractors>
<DataExtractor name="simpleValue" registeredName="auditModel.extractor.simpleValue"/>
<DataExtractor name="nullValue" registeredName="auditModel.extractor.nullValue"/>
<DataExtractor name="changeLog" registeredName="CMISChangeLogDataExtractor"/>
</DataExtractors>
<PathMappings>
<PathMap source="/CMISChangeLog" target="/CMISChangeLog" />
<PathMap source="/alfresco-api/post/FileFolderService/create" target="/CMISChangeLog/CREATED" />
<PathMap source="/alfresco-api/post/NodeService/createNode" target="/CMISChangeLog/CREATED" />
<PathMap source="/alfresco-api/post/NodeService/setProperties" target="/CMISChangeLog/UPDATED" />
<PathMap source="/alfresco-api/post/NodeService/addProperties" target="/CMISChangeLog/UPDATED" />
<PathMap source="/alfresco-api/post/NodeService/setProperty" target="/CMISChangeLog/UPDATED" />
<PathMap source="/alfresco-api/post/NodeService/removeProperty" target="/CMISChangeLog/UPDATED" />
<PathMap source="/alfresco-node/beforeDeleteNode" target="/CMISChangeLog/DELETED" />
<PathMap source="/alfresco-api/post/PermissionService/setPermission" target="/CMISChangeLog/SECURITY" />
<PathMap source="/alfresco-api/post/PermissionService/setInheritParentPermissions" target="/CMISChangeLog/SECURITY" />
<PathMap source="/alfresco-api/post/PermissionService/clearPermission" target="/CMISChangeLog/SECURITY" />
<PathMap source="/alfresco-api/post/PermissionService/deletePermission" target="/CMISChangeLog/SECURITY" />
<PathMap source="/alfresco-api/post/NodeService/moveNode" target="/CMISChangeLog/UPDATED" />
<PathMap source="/alfresco-api/post/FileFolderService/moveFrom" target="/CMISChangeLog/UPDATED" />
<PathMap source="/alfresco-api/post/FileFolderService/rename" target="/CMISChangeLog/UPDATED" />
</PathMappings>
<Application name="CMISChangeLog" key="CMISChangeLog">
<AuditPath key="CREATED">
<AuditPath key="result">
<RecordValue key="value" dataExtractor="changeLog" />
</AuditPath>
<AuditPath key="error">
<RecordValue key="value" dataExtractor="nullValue" />
</AuditPath>
</AuditPath>
<AuditPath key="UPDATED">
<AuditPath key="args">
<AuditPath key="nodeRef">
<RecordValue key="value" dataExtractor="changeLog" />
</AuditPath>
<AuditPath key="nodeToMoveRef">
<RecordValue key="value" dataExtractor="changeLog" />
</AuditPath>
<AuditPath key="sourceNodeRef">
<RecordValue key="value" dataExtractor="changeLog" />
</AuditPath>
<AuditPath key="fileFolderRef">
<RecordValue key="value" dataExtractor="simpleValue" />
</AuditPath>
</AuditPath>
<AuditPath key="error">
<RecordValue key="value" dataExtractor="nullValue" />
</AuditPath>
</AuditPath>
<AuditPath key="DELETED">
<AuditPath key="node">
<RecordValue key="value" dataExtractor="changeLog" />
</AuditPath>
</AuditPath>
<AuditPath key="SECURITY">
<AuditPath key="args">
<AuditPath key="nodeRef">
<RecordValue key="value" dataExtractor="changeLog" />
</AuditPath>
</AuditPath>
<AuditPath key="error">
<RecordValue key="value" dataExtractor="nullValue" />
</AuditPath>
</AuditPath>
</Application>
</Audit>
这个“解决方案”很不方便,可能不完整,所以如果你知道更好的方法,请发布一个新的答案,非常感谢! :-)