gpt4 book ai didi

events - BeforeInsert 和 BeforeUpdate 在 grails 域类中被触发两次

转载 作者:行者123 更新时间:2023-12-02 13:47:42 24 4
gpt4 key购买 nike

我在我的应用程序中使用 grails 版本 2.1.0,我在我的域类中有一个 before 插入,它对密码进行如下编码。

包 com.valuelabs.bets.security

类 SecUser { transient springSecurityService

String username
String password
String emailId
String mobileNumber
String position
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
boolean firstTimeLogin
String userstatus
String userRole
Date activateDate
Date expireDate = new Date()
Audit audit
static embedded = ['audit']


static mapping = {
password column: '`password`'
sort "username"
}

def beforeInsert() {
println "in before insert"
encodePassword()
}

def beforeUpdate() {
println "in before update"
if (isDirty('password')) {
encodePassword()
}
audit.lastUpdated = new Date()
}

protected void encodePassword() {
println " Before ========================> "+ password
if(springSecurityService){
password = springSecurityService.encodePassword(password)
}
println " springSecurityService "+ springSecurityService +" password "+password
}


Set<SecRole> getAuthorities() {
SecUserSecRole.findAllBySecUser(this).collect { it.secRole } as Set
}


String toString(){
username
}
static transients = ['userstatus','userRole']

这是我的 Controller 逻辑

 if (!secUserInstance.save(flush:true)) {
println "13"
//secUserInstance.errors.allErrors.each { println it }
render(view: "create", model: [secUserInstance: secUserInstance,curRole:""])
return
}

现在的问题是当我保存实例时密码被编码了两次。

请让我知道Grails版本是否有任何问题,如果有请告诉我正确的版本或可能的解决方案。

最佳答案

您能向我们展示您的 DataSource.groovy 文件吗?请注意,GORM 事件的触发次数与应用程序中的数据源一样多。

关于events - BeforeInsert 和 BeforeUpdate 在 grails 域类中被触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28961541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com