为什么grails-2.0.1无法在引导类init方法中创建用户、角色和用户角色域对象?
嗨,我是Grails平台的新手 我可以使用SpringSecurity核心插件在grails-1.3.7版本的引导类init方法中创建User、Role和UserRole域对象。。。但在grails-2.0.1版本中却不能做到这一点 下面是我试图执行的代码为什么grails-2.0.1无法在引导类init方法中创建用户、角色和用户角色域对象?,grails,bootstrapping,Grails,Bootstrapping,嗨,我是Grails平台的新手 我可以使用SpringSecurity核心插件在grails-1.3.7版本的引导类init方法中创建User、Role和UserRole域对象。。。但在grails-2.0.1版本中却不能做到这一点 下面是我试图执行的代码 import com.beshto.Role import com.beshto.User import com.beshto.UserRole import grails.util.Environment class BootStrap
import com.beshto.Role
import com.beshto.User
import com.beshto.UserRole
import grails.util.Environment
class BootStrap {
def init = { servletContext ->
switch (Environment.current) {
case Environment.DEVELOPMENT:
createInitialUsersIfRequired()
break;
case Environment.PRODUCTION:
println "No special config or Bootstrapping required for the Production version..."
break;
}
}
def destroy = {
}
void createInitialUsersIfRequired() {
println "Creating special config / Bootstrapping for Development version admin/4321 and user/1234..."
if(Role.list().size() == 0) {
new Role(authority: 'ROLE_ADMIN').save(flush: true)
new Role(authority: 'ROLE_USER').save(flush: true)
}
if(User.count() == 0){
def newAdmin = new User(username: 'admin', enabled: true, password: '4321').save(flush: true)
def newUser = new User(username: 'user', enabled: true, password: '1234').save(flush: true)
UserRole.create newAdmin, Role.findByAuthority('ROLE_ADMIN'), true
UserRole.create newUser, Role.findByAuthority('ROLE_USER'), true
assert User.count() == 2
assert Role.count() == 2
}
}
}
任何帮助都将不胜感激 我带着同样的问题来到这里,一直玩到成功 我不能百分之百确定是哪一个改变让它起作用了,但以下是我所做的:
祝你好运!检查角色创建方法。尝试更改:
新角色(权限:'Role\u ADMIN')。保存(flush:true)
为了
新角色(权限:'Role\u USER')。保存(failOnError:true)
用户的情况也一样。例如:
new User(username: 'admin', enabled: true, password: '4321').save(failOnError: true)
而不是
new User(username: 'admin', enabled: true, password: '4321').save(flush: true)
将:
.save(刷新:真)
更改为.save(刷新:真,失败者错误:真)
如果域对象未通过验证,将导致您获得stacktrace。我怀疑这是问题所在,因为它在1.3.7中工作,但可能值得一看。在安装插件后,您已经运行了grails s2 quickstart com.beshto User Role UserRole
,不是吗?@tim_yates我想如果他放弃,他会得到一个编译错误奥滕说,因为课程是imported@Don是的,但当人们在提问时(似乎有意地)迟钝的时候,总是值得一问……这里不是故意迟钝的……也许我缺乏像你一样清晰的表达技巧:-(…Don,感谢您指出..是的,我运行了s2快速启动..@Jarred Olsen,非常感谢您提供的提示..错误消息:在save()期间发生验证错误:-字段“profile”上的对象“com.beshto.User”中的字段错误:拒绝值[null]…但在grails-1.3.7..即hibernate-plugin-1.3.7中不会发生此情况