我使用的是grails 2.5.5,hibernate4 - 4.3.10& shiro - 1.2.1。
Domain类看起来像这样:
class Test{
String name
User createdBy
static constraints = {
}
def beforeValidate() {
def subject
try {
subject = SecurityUtils.subject
} catch (Exception e) {
log.error "Error obtaining the subject. Message is [${e.message}]"
}
log.error "createdBy :: [${createdBy}]"
createdBy = (subject ? User.get( subject.principal ) :
User.findByUsername("ashutosh"))
log.error "createdBy :: [${createdBy}]"
}
}
用户类是:
class User {
String username
String passwordHash
static hasMany = [ roles: Role, permissions: String ]
static constraints = {
username(nullable: false, blank: false, unique: true)
}
}
我想在测试域类中将当前登录用户作为createdBy插入。
运行此代码时,我收到以下错误:
Error obtaining the subject. Message is [No such property: SecurityUtils for class: Test]
请建议如何在将数据插入数据库时将当前用户数据插入Test中。