Я пытаюсь выполнить хеширование паролей в моем приложении Grails + Spring Security.Я использовал учебники на сайте Grails, а также те, которые я случайно нашел в Интернете.
На данный момент у меня все настроено в соответствии с этим учебником.Однако я сталкиваюсь с проблемой при развертывании приложения со следующим объявлением компонента в resources.groovy
:
saltSource(cq.MySaltSource) {
userPropertyToUse = CH.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
}
Он жалуется, что не может найти CH
.
После копания янашел сообщение на nabble , в котором говорится следующее:
Также - не используйте ConfigurationHolder (CH), поскольку он устарел в 2.0.Вы можете передать ссылку на bean-компонент grailsApplication и получить оттуда конфигурацию:
saltSource(MySaltSource) {
grailsApplication = ref('grailsApplication')
}
, а затем в своем классе добавить
def grailsApplication
и получить собственность через
String userPropertyToUse grailsApplication.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
Часть, которой я не следую, является последним утверждением о "... и получить собственность через ...".Мне кажется, что строка кода, которую он там дает, неверна.
Если кто-то может пролить здесь свет или предложить другой подход к использованию соленых паролей в Grails и Spring Security, я был бы признателен.Обратите внимание, что это должны быть уникальные соли для каждого пользователя, а не общесистемные или отдельные соли, или соли, полученные из username
.
Спасибо
ОБНОВЛЕНИЕ
Итак, я начал работать с первым уроком (забыл выражение import
в начале resources.groovy
. Но я все же хотел бы использовать второй способ (чтобы оставаться совместимым с будущей версией)).
ОБНОВЛЕНИЕ 2
Я написал полное руководство по этому вопросу, если кто-то просматривает здесь интересующий вас вопрос:
Настройкадо веб-приложения Grails с использованием Spring Security и соленых паролей.