我是Grails和Spring Security的新手。我尝试制作一个简单的寄存器视图。我使用spring-security中的s2-quickstart脚本创建了User,Role和UserRole域类。
我的问题是只有用户才会保存在数据库中。 但我想保存用户和UserRole。
这就是我的控制器:
@Secured('permitAll')
class RegisterController {
def index() {
}
def register() {
def user = new User(params)
user.save()
def role = Role.findByAuthority('ROLE_USER') // ROLE_USER will be created in the bootstrap class
UserRole.create(user, role)
redirect view: 'index'
}
}
如果我在bootstrap类中放入相同的代码,也会保存UserRole。
希望有人可以帮助解释,为什么这不起作用。
答案 0 :(得分:0)
更新您的代码:
def register() {
def user = new User(params)
user.save(flush: true, failOnError: true)
new UserRole(user: admin, role: Role.findByAuthority('ROLE_USER')).save(flush: true, failOnError: true)
redirect view: 'index'
}
如果在保存UserRole期间出现任何问题,那么failOnError: true
会出现抛出错误,那么您可以跟踪问题。