我在我的应用程序上使用MongoDB和
Spring Security Core和UI.
几乎一切都很完美,除了这一点:
def beforeUpdate() {
if (isDirty('password')) {
encodePassword()
}
}
这是User域类的一部分.我已经读过MongoDB插件不支持脏检查.所以我试着像这样实现自己的:
if ( User.collection.findOne(id:id).password != password ) {
encodePassword()
}
但它没有用.我得到经典的无法在null对象上获取属性’密码’.
有谁知道如何从域类定义中引用实例?
我也愿意接受任何更好的想法来实现脏检查.
最佳答案 也许findOne返回null?你试过了吗:
def existing = User.collection.findOne(id:id)?.password
if ( !existing || existing != password )