Grails带有Spring安全插件和salt密码

Grails带有Spring安全插件和salt密码,grails,spring-security,Grails,Spring Security,我正在尝试在我的Grails+Spring安全应用程序中进行salt密码散列。我使用了Grails网站上的教程,也使用了我在互联网上随机找到的教程 目前,我已经根据教程设置好了一切。但是,在resources.groovy中使用以下bean声明部署应用程序时,我遇到了一个问题: saltSource(cq.MySaltSource) { userPropertyToUse = CH.config.grails.plugins.springsecurity.dao.reflectionSa

我正在尝试在我的Grails+Spring安全应用程序中进行salt密码散列。我使用了Grails网站上的教程,也使用了我在互联网上随机找到的教程

目前,我已经根据教程设置好了一切。但是,在
resources.groovy
中使用以下bean声明部署应用程序时,我遇到了一个问题:

saltSource(cq.MySaltSource) {
    userPropertyToUse = CH.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
}
它抱怨找不到
CH

在四处挖掘之后,我发现了一篇关于以下内容的帖子:

另外-不要使用ConfigurationHolder(CH),因为它在2.0中已被弃用。您可以传入对grailsApplication bean的引用,并从中获取配置:

然后在你的课堂上加上

并通过

我没有遵循的部分是关于“…并通过…”获得财产的最后一句话。他给我的那行代码在我看来似乎是错误的

如果有人能在这里透露一些信息,或者提供一种不同的方法来使用Grails和Spring安全性中的salt密码,我将不胜感激。请注意,它需要是每个用户的唯一盐,而不是系统范围内的盐或单个盐,或源自
username
的盐

谢谢


更新

因此,我在第一个教程中使用了它(忘记了
resources.groovy
顶部的
import
语句)。但我仍然希望使用第二种方法(与未来版本保持兼容)


更新2

如果有人对此感兴趣,我已经就此编写了完整的教程:


resources.groovy
中定义
saltSource
bean的
GrailsApplication
作为
应用程序
变量提供,因此您可以将bean声明更改为

saltSource(cq.MySaltSource) {
   userPropertyToUse = application.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
}
def grailsApplication
String userPropertyToUse  grailsApplication.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty 
saltSource(cq.MySaltSource) {
   userPropertyToUse = application.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
}