【发布时间】:2019-01-29 17:17:12
【问题描述】:
要将身份验证添加到 grails 3 应用程序,请将其添加到 build.gradle:
compile 'org.grails.plugins:spring-security-core:3.2.3'
然后运行
grails s2-quickstart com.myapp Operator Role
这会创建 3 个域对象,但我找不到其他对象。
Operator 域对象如下所示:
package com.myapp
importgroovy.transform.EqualsAndHashCode
importgroovy.transform.ToString
importgrails.compiler.GrailsCompileStatic
@GrailsCompileStatic
@EqualsAndHashCode(includes='username')
@ToString(includes='username',includeNames=true,includePackage=false)
classOperatorimplementsSerializable{
privatestaticfinallongserialVersionUID=1
Stringusername
Stringpassword
booleanenabled=true
booleanaccountExpired
booleanaccountLocked
booleanpasswordExpired
Set<Role>getAuthorities(){
(OperatorRole.findAllByOperator(this)asList<OperatorRole>)*.roleasSet<Role>
}
staticconstraints={
passwordnullable:false,blank:false,password:true
usernamenullable:false,blank:false,unique:true
}
staticmapping={
passwordcolumn:'
`password`'
}
}
问题是,缺少用于加密密码的之前插入。在 grails 2.5 中,它曾经将其放入 Operator 域对象中:
def beforeInsert() {
encodePassword()
}
所以我希望密码以纯文本形式插入,但似乎并非如此。它似乎是加密的,至少对于使用 bootstrap 创建的 Operators 问题是在哪里以及如何?
【问题讨论】: