无法解析Grails项目中的符号
我在这个Grails项目中使用SpringSecurity核心。我发现错误“password”无法在引导类中解析 我有这个域类:无法解析Grails项目中的符号,grails,groovy,spring-security,Grails,Groovy,Spring Security,我在这个Grails项目中使用SpringSecurity核心。我发现错误“password”无法在引导类中解析 我有这个域类: class Person { transient springSecurityService String realName String username String password boolean enabled boolean accountExpired boolean accountLocked boolean passwordExpired st
class Person {
transient springSecurityService
String realName
String username
String password
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
static constraints = {
username blank: false, unique: true
password blank: false
}
static mapping = {
password column: '`password`'
}
Set<Authority> getAuthorities() {
PersonAuthority.findAllByPerson(this).collect { it.authority } as Set
}
def beforeInsert() {
encodePassword()
}
def beforeUpdate() {
if (isDirty('password')) {
encodePassword()
}
}
protected void encodePassword() {
password = springSecurityService.encodePassword(password)
}
}
我使用的是Grails 2.2和Spring Security Core 1.2.7.3,在BootStrap中,您使用的是一个名为密码的未定义变量 我在问题行上方添加了一条评论:
[harry: 'Harry Brock'].each { userName, realName ->
// userName and realName are closure parameters, enabled is always true.. but where is password defined?
def user = new Person(username: userName, realName: realName, password: password, enabled: true).save()
PersonAuthority.create user, userRole, true
}
在引导程序中,您使用的是名为
password
的未定义变量
我在问题行上方添加了一条评论:
[harry: 'Harry Brock'].each { userName, realName ->
// userName and realName are closure parameters, enabled is always true.. but where is password defined?
def user = new Person(username: userName, realName: realName, password: password, enabled: true).save()
PersonAuthority.create user, userRole, true
}
实例化用户对象时,所有这些属性都不能为null:
String password //apparently it missed, but the other 3 are also needed
boolean accountExpired
boolean accountLocked
boolean passwordExpired
因此,请按如下方式保存userInstance:
def user = new Person(username: userName, realName: realName, password: password, enabled: true, accountExpired:false, accountLocked:false, passwordExpired:false).save()
或者,您可以在beforeInsert()中添加布尔属性以简化代码:
def beforeInsert() {
enabled=true
accountExpired=false
accountLocked=false
passwordExpired=false
encodePassword()
}
实例化用户对象时,所有这些属性都不能为null:
String password //apparently it missed, but the other 3 are also needed
boolean accountExpired
boolean accountLocked
boolean passwordExpired
因此,请按如下方式保存userInstance:
def user = new Person(username: userName, realName: realName, password: password, enabled: true, accountExpired:false, accountLocked:false, passwordExpired:false).save()
或者,您可以在beforeInsert()中添加布尔属性以简化代码:
def beforeInsert() {
enabled=true
accountExpired=false
accountLocked=false
passwordExpired=false
encodePassword()
}
谢谢我试图将密码设置为password。我是这样做的:密码:“密码”谢谢。我试图将密码设置为password。我是这样做的:密码:“密码”