以下代碼向單個用戶添加多個角色,同時應該注意的是,這隻適用於單個會話,因爲我們每次啓動時都會嘗試定義角色和用戶應用程序,以防止因爲添加數據庫檢查而創建的任何崩潰,並創建角色和用戶如果它們不存在。單個用戶的多個角色
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)
}
}
}
大部分的代碼是直接引用亞蘭Arabyan的回答,和伊恩·羅伯茨與一些修復評論我的代碼工作。
'def userRole = new SpringUser(...)'是一個錯字 - 它應該是'new SpringRole'? –
對不起,這是一個錯字,但代碼在修復後仍然不能編譯。 – Mantas