2012-08-24 8 views
11

Moja klasa domeny użytkownika rozszerza SecUser.Grails Spring Security użyj adresu e-mail, aby się zalogować

Użytkownik ma właściwość "e-mail".

Wiosenne zabezpieczenia używają nazwy użytkownika SecUser do logowania.

Potrzebuję użyć "e-mail", aby się zalogować. Czy jest jakiś sposób na zrobienie tego?

Edit (od przyjętego odpowiedź):

Usunąłem właściwość nazwę użytkownika SecUser i dodano właściwość e-mail.

Potem dodałem tę linię do Config.groovy:

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

Odpowiedz

15

RTFM przyjacielu :)

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 

Dodaj do Config.grooy:

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

nowsze wersje Grails używasz prefiks

grails.plugin.springsecurity zamiast grails.plugins.springsecurity

+0

Dzięki! W końcu zrobiłem ir work –

+0

Po pierwsze, zmodyfikowałem linię, o której wspomina odpowiedź w pliku konfiguracyjnym wtyczki. Oczywiście ten plik nie był wersjonowany. Potem zdałem sobie sprawę, że muszę nadpisać konfigurację w pliku Config.groovy. Dodałem: grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email' –

+0

fyi, w nowszych wersjach wiosennego bezpieczeństwa, prefiks się zmienił. "Twoje ustawienia konfiguracji zabezpieczeń używają starego przedrostka" grails.plugins.springsecurity ", ale muszą teraz używać 'grails.plugin.springsecurity'" –

0

Jeśli jesteś również za pomocą wtyczki UI Wiosna zabezpieczeń mieć świadomość, że domyślny tekst dla zapomniane hasło i e-maili rejestracyjnych użytkownika referencyjnej pole nazwy użytkownika.

Można zastąpić je tak:

grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...' 
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...' 
Powiązane problemy