我在更新User类的密码字段时遇到问题,我在grails中使用SpringSecurity插件,看到它应该像这样完成但是没有用...
user.password = springSecurityService.encodePassword(
params.password, userInstance.username)
也尝试了
user.password = springSecurityService.encodePassword(
params.password)
任何想法?
答案 0 :(得分:2)
如果您使用的是较新版本的插件(1.2.7或更高版本),那么您不希望像您一样明确地对密码进行编码,因为User类中生成的代码会为您执行此操作。如果您的域类没有,请仅调用springSecurityService.encodePassword
,否则您将进行双重编码而无法登录。
如果您自己编码密码,您显示的第一个版本是使用用户名作为salt,第二个版本没有盐。盐渍密码是一个好主意但不是必需的 - 您可以在文档中阅读它,第12.2节 - http://grails-plugins.github.com/grails-spring-security-core/docs/manual/
答案 1 :(得分:0)
你可能想看看Grails Spring Sec插件的作者是如何在他的ui插件中做到的