【发布时间】:2011-12-06 01:26:57
【问题描述】:
我正在尝试在我的 Grails + Spring Security 应用程序中进行加盐密码散列。我使用了 Grails 网站上的教程,以及我在 Internet 上随机找到的教程。
目前,我已经按照this 教程进行了所有设置。但是,在resources.groovy 中使用以下 bean 声明部署应用程序时遇到了问题:
saltSource(cq.MySaltSource) {
userPropertyToUse = CH.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
}
它抱怨找不到CH。
翻遍后,我在nabble 上发现了一个帖子,内容如下:
另外 - 不要使用 ConfigurationHolder (CH),因为它在 2.0 中已被弃用。您可以传入对 grailsApplication bean 的引用并从那里获取配置:
saltSource(MySaltSource) {
grailsApplication = ref('grailsApplication')
}
然后在你的类中添加
def grailsApplication
并通过
获取属性
String userPropertyToUse grailsApplication.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
我没有遵循的部分是关于“...并通过...获取属性”的最后陈述。他在那里给出的代码行在我看来格式不正确。
如果有人可以在这里阐明一些观点,或者提供一种不同的方法来使用 Grails 和 Spring Security 的加盐密码,我将不胜感激。请注意,它必须是每个用户唯一的盐,而不是系统范围的盐或单一盐,或源自username 的盐。
谢谢
更新
所以我在第一个教程中得到了它(忘记了resources.groovy 顶部的import 声明。但我仍然想使用第二种方式(与未来版本保持兼容)。
更新 2
如果有人浏览这里有兴趣,我已经写了一个完整的教程:
Setting up a Grails web application using Spring Security and salted passwords.
【问题讨论】: