我是Grails的新手并尝试使用Spring Security Core插件为用户分配角色。我把我的项目称为“MyProject”。
在为我的模型生成控制器和视图后,在Config.groovy
中,我设置了一个必需的登录名,以便访问/ userMyProject /:
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/userMyProject/**': ['ROLE_ADMIN']
]
然后在BootStrap.groovy
我自动创建一些用户和角色:
def init = { servletContext ->
def role1 = new Role();
role1.setAuthority("ROLE_ADMIN")
role1.save();
def user1 = new UserMyProject();
// ... assigning name, username, password...
user1.save();
new UserMyProjectRole(userCwitter:user1, role:role1).save();
}
但是当我转到我的UserMyProjectController
页面时,它会正确打开登录页面但总是大喊抱歉,我们无法找到具有该用户名和密码的用户。我能够在我的数据库中看到它。
感谢您的帮助。
答案 0 :(得分:0)
在部分中:
// ... assigning name, username, password...
您是否在编码密码(1.2版之前)?
def springSecurityService
...
springSecurityService.encodePassword('password')
关于如何setup Spring security with Grails的一个很好的参考。
编辑:
您确定用户已保存在数据库中吗?如果您的用户在此,请添加save(flush: true, failOnError: true)
并检查数据库。