使用用户名作为电子邮件,Spring Security UI插件

时间:2012-12-27 11:00:15

标签: grails spring-security grails-plugin grails-2.0 grails-controller

我正在使用Spring Security插件,结合Spring Security UI插件。

它们都像魅力一样,但我的问题是我不希望我的用户拥有用户名,而是他/她应该使用电子邮件作为用户名。

因此,在注册阶段,我尝试从注册页面中删除用户名并设置

newUser.username = params.email

这样插件仍然可以访问变量用户名,但是这给了我验证错误,我只是想办法解决它。

有什么想法吗?有没有人做过类似的事情?

2 个答案:

答案 0 :(得分:4)

您可以修改spring security使用的默认用户字段

Config.groovy 中添加以下内容

  

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

其中XXX是要使用的用户实体的字段

您可以查看配置属性here

答案 1 :(得分:0)

我最近通过将视图和控制器从spring安全插件复制到我的grails-app和更新视图来显示与用户名相反的电子邮件地址。我还用User域类中的emailAddress替换了username属性。确保按如下方式更新约束:

static constraints = {
    emailAddress email: true, blank: false, unique: true
    password blank: false, password: true
}

dimcookies建议的内容是正确的,适用于旧版本的Grails,新语法配置,至少对于Grails 2.3.1,是:

grails.plugin.springsecurity.userLookup.usernamePropertyName = 'emailAddress'