【问题标题】:Grails onLoad() auditGrails onLoad() 审计
【发布时间】:2012-03-09 16:52:03
【问题描述】:

我看到 grails-audit 插件提供了记录 onCreate() onUpdate() 事件的方法,但我还需要跟踪 onLoad() 事件。

有没有使用任何插件的标准方法?还是我需要自己实现?

【问题讨论】:

    标签: grails onload audit audit-trail audit-logging


    【解决方案1】:

    您可以将 onLoad 闭包添加到域类。它将在对象首次从数据库中加载时执行。

    class Foo {
        int bar;
    
        def onLoad = {
            // onLoad fired
        }
    }
    

    【讨论】:

    • 是从数据库加载域对象时自动触发的 onLoad 事件。示例:发生用户登录后。我还看到默认情况下,事件发生时会更新 audit_log 表,如果我想自己自定义或处理插入或更改表的结构,我是否要为此创建另一个域?
    • 看起来像 onLoad 闭包,因为它的用户定义不会将条目记录到 audit_log 表中......我们必须为此创建和管理我们的域..?
    • 如何将 onCreate() onUpdate() 事件记录到 audit_log 表中?
    • 嗨,我在 onCreate 和 onUpdate 中更新我自己的审计域类实例,我没有使用 onLoad,因为它被调用了很多次,而不仅仅是一次。例如,当用户登录应用程序时,使用 onLoad 进行日志记录会在表中创建 10 个类似的条目 - 唯一的区别是时间戳中的微秒。因此,我在登录页面上的提交按钮的登录控制器 onclick 中创建审核日志,而不是在用户域 onLoad 中。此外,插件更新的默认 auditLog 域仅保存类名,我需要获取其他详细信息,如 id 已保存/已删除等?
    • 看来我不明白这个问题。您现在正在控制器中跟踪事件 - 加载用户域。现在你想在这个控制器中跟踪保存/删除?无论如何,看看 grails 审计插件,见 my comment?
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 2015-08-13
    • 2015-12-14
    相关资源
    最近更新 更多