【问题标题】:Specify specific fields to audit in grails audit logging plugin在 grails 审计日志插件中指定要审计的特定字段
【发布时间】:2012-05-09 17:51:13
【问题描述】:

我正在使用http://grails.org/plugin/audit-logging 插件,并且只对审计大型域类中的单个字段感兴趣。我可以指定一个冗长的“忽略”列表,但理想情况下,我想指定字段的白名单,这样如果添加了新字段,则无需维护忽略列表以避免它们被自动审核,这可能是一种性能风险。

这可能吗?我没有在插件的文档中看到它的提及。

【问题讨论】:

    标签: grails plugins audit


    【解决方案1】:

    我认为您可以仅使用事件处理程序而不是标准审核日志记录来执行此操作。你可以这样设置审计

    static auditable = [handlersOnly: true]
    

    您可以创建一个白名单

    def whiteList = ['name','age',...]
    

    然后创建 on* 事件来处理保存、删除或更改事件并遍历白名单以在新旧映射中查找该键:

    def onChange = {oldMap, newMap ->
        whiteList.each{propName->
           if(oldMap[propName] != newMap[propName]) {
             //
           }
        }
    }
    

    【讨论】:

    • 我能够修改审计日志源以使用类似于“忽略”列表的“唯一”列表来处理此问题。如果您愿意,我可以发布我所做的 - 它对我有用(我可能会开始在我的项目中使用它)但它没有被清理。例如,它查看“忽略”列表并删除这些项目,然后获取“唯一”列表并删除不在该列表中的项目,因此有点多余。
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 2012-03-27
    • 2015-11-26
    • 2013-07-09
    • 2021-01-26
    • 2023-02-08
    • 2011-02-21
    • 2014-06-21
    相关资源
    最近更新 更多