我在更新 User 类的密码字段时遇到问题,我在 grails 中使用 SpringSecurity 插件,看到它应该像这样完成,但不起作用...
user.password = springSecurityService.encodePassword(
params.password, userInstance.username)
也尝试过
user.password = springSecurityService.encodePassword(
params.password)
有什么想法吗?
最佳答案
如果您使用的是较新版本的插件(1.2.7 或更高版本),那么您不想像您正在做的那样对密码进行显式编码,因为 User 类中生成的代码会为您完成此操作。仅当您的域类没有调用 springSecurityService.encodePassword
时,否则您将进行双重编码并且无法登录。
如果您自己对密码进行编码,则您显示的第一个版本将使用用户名作为盐,而第二个版本则没有盐。对密码加盐是个好主意,但不是必需的 - 您可以在文档第 12.2 节 - http://grails-plugins.github.com/grails-spring-security-core/docs/manual/ 中阅读相关内容。
关于grails - 更新 spring security 用户的密码字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10065308/