2012-08-24 75 views
11

我的用戶域類擴展了SecUser。Grails Spring Security使用電子郵箱登錄

用戶有一個屬性'電子郵件'。

Spring安全使用SecUser的'用戶名'登錄。

我需要使用'電子郵件'登錄。有沒有辦法做到這一點?

編輯(從接受的答案):

我刪除SecUser的用戶名和屬性添加電子郵件財產。

然後我說這行的Config.groovy:

grails.plugins.springsecurity.userLookup.usernamePropertyName = '郵件'

回答

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 

Add to Config.grooy:

的Grails

新版本所使用的

grails.plugin.springsecurity而不是grails.plugins.springsecurity

+0

謝謝!我終於做了工作 –

+0

首先,我修改了答案在插件的配置文件中提到的那一行。顯然,該文件沒有版本。 然後,我意識到我必須重寫Config.groovy文件中的配置。我添加了以下內容: grails.plugins.springsecurity.userLookup.usernamePropertyName ='email' –

+0

fyi,在更新版本的spring security中,前綴已更改。 「您的安全配置設置使用舊的前綴'grails.plugins.springsecurity',但現在必須使用'grails.plugin.springsecurity'」 –

0

前綴如果您還使用Spring Security的UI插件請注意:對於忘記的密碼和用戶註冊郵件引用的默認文本用戶名字段。

您可以覆蓋他們是這樣的:

grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...' 
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...' 
相關問題