【问题标题】:Grails with Spring Security Plugin and Salted Passwords带有 Spring Security 插件和加盐密码的 Grails
【发布时间】: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.

【问题讨论】:

    标签: grails spring-security


    【解决方案1】:

    在您定义 saltSource bean 的 resources.groovy 中,GrailsApplication 可用作 application 变量,因此您可以将 bean 声明更改为

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

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 2013-06-23
      • 2016-01-01
      • 2011-11-14
      • 2016-08-30
      • 2016-04-06
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      相关资源
      最近更新 更多