grails - Grails-Spring Security保存UserRole

标签 grails spring-security

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

相关文章:

unit-testing - Grails 3.3.8单元测试服务

grails - 升级到 2.3.6 后如何解决 grails 应用程序中的错误

spring-mvc - java.lang.NoClassDefFoundError : org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor 错误

grails - 远程 Grails 应用程序上的 YourKit 配置文件

grails - 尝试渲染PDF时出现Grails渲染插件错误?

rest - 防止重播 REST url 的重播攻击

java - 如何使用 Spring Security Java 配置将 HTTP 请求重定向到 HTTPS?

java - 将 CAS 与自定义登录页面一起使用

java - 使用用户 XML 配置的 Spring security 不起作用

grails - 如何动态交换报表中的子报表