2012-08-24 12 views
11

Mi clase de dominio de usuario se extiende a SecUser.Grails Spring Security utiliza el correo electrónico para iniciar sesión

El usuario tiene una propiedad 'correo electrónico'.

La seguridad de primavera usa el 'nombre de usuario' de SecUser para iniciar sesión.

Necesito usar 'email' para iniciar sesión. ¿Hay alguna forma de hacer esto?

Editar (de la respuesta aceptada):

que elimina la propiedad de nombre de usuario SecUser y ha añadido la propiedad de correo electrónico.

Luego añade esta línea a Config.groovy:

grails.plugins.springsecurity.userLookup.usernamePropertyName = 'e-mail'

Respuesta

15

RTFM mi amigo :)

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 

Añadir a Config.grooy:

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

versiones más recientes de griales están utilizando un prefijo de

grails.plugin.springsecurity en lugar de grails.plugins.springsecurity

+0

Gracias! Finalmente hice ir a trabajar –

+0

Primero, modifiqué la línea que la respuesta menciona en un archivo de configuración del complemento. Obviamente, ese archivo no estaba versionado. Luego, me di cuenta de que tenía que anular la configuración en el archivo Config.groovy. Agregué lo siguiente: grails.plugins.springsecurity.userLookup.usernamePropertyName = 'email' –

+0

fyi, en versiones más recientes de Spring Security, el prefijo ha cambiado. "La configuración de configuración de seguridad usa el antiguo prefijo 'grails.plugins.springsecurity' pero ahora debe usar 'grails.plugin.springsecurity'" –

0

Si también está utilizando la interfaz de usuario de conectores de seguridad de Primavera en cuenta que el texto predeterminado para contraseña olvidada y correos electrónicos de registro de usuario de referencia el campo de nombre de usuario.

Puede anular como esto:

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