My User domain class extends SecUser.
User has a property 'email'.
Spring security uses SecUser's 'username' to login.
I need to use 'email' to login. Is there a way to do this?
Edit (from the accepted answer):
I deleted SecUser's username property and added email property.
Then I added this line to Config.groovy:
grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email'
RTFM my friend :)
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
Add to Config.grooy:
grails.plugins.springsecurity.userLookup.usernamePropertyName='email'
newer versions of grails are using a prefix of
grails.plugin.springsecurity
instead of grails.plugins.springsecurity
If you're also using the Spring Security UI plugin be aware that the default text for forgotten password and user registration emails reference the username field.
You can override them like this:
grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...'
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With