我想在我的 Grails 应用程序和 Spring Security 中使用 MongoDB。我使用命令生成了 User 和 Role 类s2-quickstart
。正如许多博客文章中所说,id
我为我的所有类型类添加了一个属性。ObjectId
它确实有效,但一种方法让我有点困扰:
// SecUser.groovy (generated by s2-quickstart)
def beforeUpdate() {
if (this.isDirty('password')) {
encodePassword()
}
}
该方法isDirty()
在 MongoDB 环境中似乎不可用。使用 Hibernate 可以正常工作。这是在http://jira.grails.org/browse/GPMONGODB-114下提交的错误
有没有办法绕过这种方法?据我了解,它会检查密码是否被修改,然后再次对其进行编码。
难道不能手动做到这一点吗?例如,如果我有一个包含密码字段的用户个人资料页面,我只是在保存时再次对其进行编码?
我真的很想同时使用 Spring Security 和 MongoDB,我相信这种方法不会阻止我。;)