[英]Grails Spring Security use email to login
My User domain class extends SecUser. 我的用户域类扩展了SecUser。
User has a property 'email'. 用户拥有“电子邮件”属性。
Spring security uses SecUser's 'username' to login. Spring安全性使用SecUser的“用户名”登录。
I need to use 'email' to login. 我需要使用'email'登录。 Is there a way to do this? 有没有办法做到这一点?
Edit (from the accepted answer): 编辑(从接受的答案):
I deleted SecUser's username property and added email property. 我删除了SecUser的用户名属性并添加了电子邮件属性。
Then I added this line to Config.groovy: 然后我将这行添加到Config.groovy:
grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email' grails.plugins.springsecurity.userLookup.usernamePropertyName ='email'
RTFM my friend :) RTFM我的朋友:)
http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/single.html#4.1%20Person%20Class 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: 添加到Config.grooy:
grails.plugins.springsecurity.userLookup.usernamePropertyName='email'
newer versions of grails are using a prefix of 较新版本的grails使用的是前缀
grails.plugin.springsecurity
instead of grails.plugins.springsecurity
grails.plugin.springsecurity
而不是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. 如果您还使用Spring Security UI插件,请注意忘记密码和用户注册电子邮件的默认文本引用用户名字段。
You can override them like this: 您可以像这样覆盖它们:
grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...'
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.