Grails Spring Безопасность использования электронной почты для входа в систему
Класс пользователя My User расширяет SecUser.
Пользователь имеет свой адрес электронной почты.
Spring для безопасности используется имя пользователя SecUser для входа.
Мне нужно использовать "email" для входа. Есть ли способ сделать это?
Изменить (из принятого ответа):
Я удалил свойство имени пользователя SecUser и добавил свойство электронной почты.
Затем я добавил эту строку в Config.groovy:
grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email'
Ответы
Ответ 1
RTFM мой друг:)
http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/single.html#4.1%20Person%20Class
userLookup.usernamePropertyName 'username' User class username field
Добавить в Config.grooy:
grails.plugins.springsecurity.userLookup.usernamePropertyName='email'
более новые версии grails используют префикс
grails.plugin.springsecurity
вместо grails.plugins.springsecurity
Ответ 2
Если вы также используете плагин Spring Security UI, имейте в виду, что текст по умолчанию для забытых паролей и регистрационных писем пользователя ссылается на поле имени пользователя.
Вы можете переопределить их следующим образом:
grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...'
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...'