我是Grails和Spring Security的新手。我尝试制作一个简单的注册 View 。我使用来自spring-security的s2-quickstart脚本创建了User,Role和UserRole域类。
我的问题是只有用户将被保存在数据库中。
但是我想保存User和UserRole。
那就是我的 Controller :
@Secured('permitAll')
类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也将被保存。
希望有人可以帮助和解释,为什么这行不通。
最佳答案
更新您的代码:
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
中抛出错误,那么您可以跟踪该问题。
关于grails - Grails-Spring Security保存UserRole,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43049763/