11

我的用户域类扩展了 SecUser。

用户有一个属性“电子邮件”。

Spring security 使用 SecUser 的“用户名”登录。

我需要使用“电子邮件”登录。有没有办法做到这一点?

编辑(来自接受的答案):

我删除了 SecUser 的用户名属性并添加了电子邮件属性。

然后我将此行添加到 Config.groovy:

grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email'

4

2 回答 2

15

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

于 2012-08-24T01:02:12.040 回答
1

如果您还使用 Spring Security UI 插件,请注意忘记密码和用户注册电子邮件的默认文本引用用户名字段。

您可以像这样覆盖它们:

grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...'
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...'
于 2014-04-27T15:32:36.290 回答