Нет такого алгоритма - bcrypt

Я использую Spring Security с bcrypt для защиты паролей.

На самом деле это приложение Grails. Когда приложение запускается, я получаю:

"Нет такого алгоритма [bcrypt]"

Я проследил ошибку до кода в безопасности Spring:

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

Как установить bcrypt в Java Security?

Я использую Oracle JDK 1.8.0_73-b02 на CentOS 7.


person Greg Pagendam-Turner    schedule 26.02.2016    source источник
comment
Документация Oracle показывает, что bcrypt не включен в базовую версию: docs.oracle.com/javase/8/docs/technotes/guides/security/   -  person Greg Pagendam-Turner    schedule 26.02.2016
comment
Grails кажется плагином bcrypt для Grails. stackoverflow .com/questions/10242519/   -  person Greg Pagendam-Turner    schedule 26.02.2016
comment
Похоже, плагин еще не доступен для Grails 3   -  person Greg Pagendam-Turner    schedule 26.02.2016


Ответы (1)


Проблема была в коде:

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

По умолчанию подключаемый модуль Spring-core для Grails 3 настраивает conf.password.algorithm="bcrypt"

Я думал, что переопределил это в своей конфигурации, но это было в Config.groovy. В Grails 3 конфиг нужно переместить в application.groovy

person Greg Pagendam-Turner    schedule 02.03.2016