2012-08-24 3 views
11

La classe dominio utente dell'utente estende SecUser.Grails Spring Security utilizza l'e-mail per l'accesso

L'utente ha una proprietà "email".

La sicurezza Spring utilizza "username" di SecUser per accedere.

Ho bisogno di utilizzare "email" per accedere. C'è un modo per fare questo?

Edit (dalla risposta accettata):

ho cancellato proprietà nome utente di SecUser e ha aggiunto di proprietà e-mail.

poi ho aggiunto questa linea a Config.groovy:

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

risposta

15

RTFM il mio amico :)

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 

Aggiungi a Config.grooy:

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

versioni più recenti di graal stanno usando un prefisso di

grails.plugin.springsecurity invece di grails.plugins.springsecurity

+0

Grazie! Ho finalmente realizzato il lavoro –

+0

Per prima cosa ho modificato la riga che la risposta menziona in un file di configurazione del plugin. Ovviamente, quel file non è stato versionato. Poi, ho capito che dovevo scavalcare la configurazione nel file Config.groovy. Ho aggiunto quanto segue: grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email' –

+0

fyi, nelle versioni più recenti di Spring Security, il prefisso è cambiato. "Le tue impostazioni di configurazione della sicurezza usano il vecchio prefisso 'grails.plugins.springsecurity', ma ora devono usare 'grails.plugin.springsecurity'" –

0

Se si sta utilizzando anche il plugin di interfaccia utente Primavera di sicurezza essere consapevoli del fatto che il testo predefinito per dimenticato password e le email di registrazione degli utenti di riferimento il campo del nome utente.

È possibile ignorare in questo modo:

grails.plugins.springsecurity.ui.register.emailBody = 'Hi \$user.firstName...' 
grails.plugins.springsecurity.ui.forgotPassword.emailBody = 'Hi \$user.firstName...'