spring - GORM 全局 beforeInsert 设置 modifiedBy

标签 spring grails spring-security

我想自动设置我的 DomainClasses 的 modifiedBy 和 createdBy 属性。
为此,我将 Bootstrap.grooy 更改为:

import org.codehaus.groovy.grails.commons.GrailsDomainClass

class BootStrap {
def grailsApplication

def init = { servletContext ->
    grailsApplication.domainClasses.each { GrailsDomainClass gdc ->
        if (gdc.hasProperty('modifiedBy') && gdc.hasProperty('createdBy')) {
            gdc.metaClass.beforeInsert = {
                modifiedBy = springSecurityService.currentUser.id
                createdBy = springSecurityService.currentUser.id
            }
        }
        if (gdc.hasProperty('modifiedBy') && gdc.hasProperty('modified')) {
            gdc.metaClass.beforeUpdate = {
                modified = new Date()
                modifiedBy = springSecurityService.currentUser.id
            }
        }
      }
   } 
 }

为了完成这项工作,我需要在所有具有属性的 DomainClasses 中使用 springSecurityService,我可以添加以下内容:
def springSecurityService
static transients = ['springSecurityService']

没有那个我怎么能注入(inject)springSecurityService?

最佳答案

我在 this 中找到了解决方案

这适用于 Platform Plugin

关于spring - GORM 全局 beforeInsert 设置 modifiedBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31267376/

相关文章:

java - 如何在 PreAuthorize 中解析属性文件中的属性?

java - Spring Boot 授权服务器向外部服务发送请求以获取用户详细信息

java - 什么时候创建一个新的 SessionFactory?

java - 防止 Spring 在一个 Bean 失败时失败

grails - 在GSP中导入类的正确方法是什么?

java - Grails 与 REST 的 Spring 性能

spring - spring-security 收到空凭据(用户名和密码)时如何创建自定义响应?

azure - 如何使用 @WebMvcTest、MockMvc 和 OAuth 安全性测试 Controller

java - 运行 Spring 应用程序的 Tomcat 7

jquery - 如何从jquery.html()函数中的属性文件获取值