Grails - Spring Security保存UserRole

时间:2017-03-27 14:54:56

标签: grails spring-security

我是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。

希望有人可以帮助解释,为什么这不起作用。

1 个答案:

答案 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会出现抛出错误,那么您可以跟踪问题。