使用Grails的Spring安全性插件创建用户

时间:2011-06-28 13:51:57

标签: grails spring-security

我在Grails应用程序中使用spring security core插件。我设法安装插件并在bootstrap中提供默认用户,该用户工作正常。但是,我想提供在应用程序中创建新用户(注册)的选项。完成此任务的最佳方法是什么?我在UserController中尝试了以下代码:

 def save = {
    def userRole = SecRole.findByAuthority("ROLE_USER")?: new SecRole(authority:"ROLE_USER").save(failOnError:true)
    def adminRole = SecRole.findByAuthority("ROLE_ADMIN") ?: new SecRole(authority:"ROLE_ADMIN").save(failOnError:true)

    def newUser = new User(
                        username: params.username,
                        password: springSecurityService.encodePassword(params.password),
                        enabled: true)

    SecUserSecRole.create newUser, userRole
}

但它不起作用并抛出java.lang.NullPointerException。 有任何想法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您需要在用户上拨打save()

答案 1 :(得分:0)

我尝试加载不存在的角色。我用上面的评论测试了它(保存用户而不是在修复我的bug之后保存,两个版本都有效)。所以SecUserSecRole.create对我来说足够了。