我正在使用Grails 2.3.2并尝试将我的Spring Security Core Plugin从1.2.7.3升级到2.0。
我做了所有导入更改并启动了我的应用,但我无法登录。 2.0中的一个变化是它使用bcrypt算法进行密码,使我所有的旧密码都无用。所以,我在我的应用程序中完成了密码重置过程,并且确定之后我可以正常登录。
但是,我想保留所有用户的旧密码,所以我找到了该插件的1.2.7.3版本的文档并查找了它使用的算法:http://grails-plugins.github.io/grails-spring-security-core/docs/manual.1273/guide/12%20Password%20and%20Account%20Protection.html
根据这些文档,其默认值为SHA-256。所以,我添加了配置更改,但我仍然无法登录。
那么,如何将我的所有用户密码迁移到2.0版本的插件?截至目前,它似乎不可能......
答案 0 :(得分:8)
还有另一个变化 - 哈希迭代次数。在1.2.x中,密码被哈希一次,但是在2.0中,密码拉伸的密码为10,000次 - 请参阅http://grails-plugins.github.io/grails-spring-security-core/2.0.x/guide/passwords.html#hashing
添加此项以恢复旧行为:
grails.plugin.springsecurity.password.algorithm = 'SHA-256'
grails.plugin.springsecurity.password.hash.iterations = 1