【发布时间】:2014-07-29 17:46:02
【问题描述】:
我正在使用 SpringSecurity 2.0-RC2 并希望用户能够在他们在线时更改他们的密码。
我的用户域类有以下内容
def beforeInsert() {
encodePassword()
}
def beforeUpdate() {
if (isDirty('password')) {
encodePassword()
}
}
protected void encodePassword() {
password = springSecurityService.encodePassword(password)
}
为了检查用户是否输入了正确的当前密码,我在控制器中执行了以下操作:
if (springSecurityService.encodePassword(params.currentPassword) == user.password) {
...但令人惊讶的是(对我来说)检查总是失败。如果我这样做,那就更奇怪了:
println springSecurityService.encodePassword(params.currentPassword)
println springSecurityService.encodePassword(params.currentPassword)
我在控制台中收到以下内容
$2a$10$sWt7mUSHPFT.Np6m.gXyl.h8tWqblJbwtzQ6EQeMHxXMoGwOffC3e $2a$10$lwHz1SkNlW8ibznt.mOiruAg5eG/BTtsjM7ChyYVBvamRcrL8tucm
(好像会有盐 - 但我自己没有配置)
我的设置或多或少是默认设置;除了三个域类的包名。
由于文档自严重几天以来一直处于关闭状态,我在这里询问是否有人知道我做错了什么......
【问题讨论】: