以下代码为单个用户添加多个角色,还应注意,这仅适用于单个会话,因为我们尝试在每次启动应用程序时定义角色和用户,以防止由此导致的任何崩溃添加对数据库的检查并创建角色和用户(如果它们不存在)。
import trippinspring.*
class BootStrap {
def init = { servletContext ->
def adminRole = new SpringRole(authority: 'ROLE_ADMIN').save(flush: true)
def userRole = new SpringRole(authority: 'ROLE_USER').save(flush: true)
def testUser = new SpringUser(username: 'me', enabled: true, password: 'password')
testUser.save(flush: true)
if (!testUser.authorities.contains(adminRole)) {
new SpringUserSpringRole(springUser: testUser, springRole: adminRole).save(flush: true,failOnError: true)
}
if (!testUser.authorities.contains(userRole)) {
new SpringUserSpringRole(springUser: testUser, springRole: userRole).save(flush: true,failOnError: true)
}
}
}
大部分代码是对 Aram Arabyan 答案的直接引用,Ian Roberts 评论了一些修复以使用我的代码。