【发布时间】:2012-05-09 17:51:13
【问题描述】:
我正在使用http://grails.org/plugin/audit-logging 插件,并且只对审计大型域类中的单个字段感兴趣。我可以指定一个冗长的“忽略”列表,但理想情况下,我想指定字段的白名单,这样如果添加了新字段,则无需维护忽略列表以避免它们被自动审核,这可能是一种性能风险。
这可能吗?我没有在插件的文档中看到它的提及。
【问题讨论】:
我正在使用http://grails.org/plugin/audit-logging 插件,并且只对审计大型域类中的单个字段感兴趣。我可以指定一个冗长的“忽略”列表,但理想情况下,我想指定字段的白名单,这样如果添加了新字段,则无需维护忽略列表以避免它们被自动审核,这可能是一种性能风险。
这可能吗?我没有在插件的文档中看到它的提及。
【问题讨论】:
我认为您可以仅使用事件处理程序而不是标准审核日志记录来执行此操作。你可以这样设置审计
static auditable = [handlersOnly: true]
您可以创建一个白名单
def whiteList = ['name','age',...]
然后创建 on* 事件来处理保存、删除或更改事件并遍历白名单以在新旧映射中查找该键:
def onChange = {oldMap, newMap ->
whiteList.each{propName->
if(oldMap[propName] != newMap[propName]) {
//
}
}
}
【讨论】: