Grails с плагином Spring Security и солеными паролями - PullRequest
2 голосов
/ 12 октября 2011

Я пытаюсь выполнить хеширование паролей в моем приложении 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 и соленых паролей.

1 Ответ

4 голосов
/ 12 октября 2011

В resources.groovy, где вы определяете компонент saltSource, GrailsApplication доступна как переменная application, поэтому вы можете изменить объявление компонента на

saltSource(cq.MySaltSource) {
   userPropertyToUse = application.config.grails.plugins.springsecurity.dao.reflectionSaltSourceProperty
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...