0

我正在使用带有 bcrypt 的 Spring Security 来确保密码安全。

它实际上在 Grails 应用程序中。当应用程序启动时,我得到:

“没有这样的算法 [bcrypt]”

我将错误追溯到 Spring security 中的代码:

    try {
        return MessageDigest.getInstance(algorithm);
    }
    catch (NoSuchAlgorithmException e) {
        throw new IllegalArgumentException("No such algorithm [" + algorithm + "]");
    }

如何将 bcrypt 安装到 Java Security 中?

我在 CentOS 7 上运行 Oracle JDK 1.8.0_73-b02。

4

1 回答 1

0

问题是代码:

messageDigestPasswordEncoder(MessageDigestPasswordEncoder, conf.password.algorithm) {
    encodeHashAsBase64 = conf.password.encodeHashAsBase64
    iterations = conf.password.hash.iterations
}

默认情况下,Grails 3 spring-core 插件配置 conf.password.algorithm="bcrypt"

我以为我已经在我的配置中覆盖了它,但那是在 Config.groovy 中。在 grails 3 中,配置需要移动到 application.groovy

于 2016-03-02T05:07:07.877 回答