2

我将 Spring Security 插件与 Spring Security UI 插件结合使用。

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

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

newUser.username = params.email

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

有任何想法吗?有没有人做过类似的事情?

4

2 回答 2

4

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

在您的Config.groovy 中添加以下内容

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

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

您可以在此处检查配置属性

于 2012-12-27T13:33:24.093 回答
0

我最近通过将视图和控制器从 spring 安全插件复制到我的 grails-app 并更新视图以将 emailAddress 显示为与用户名相反来完成此操作。我还在用户域类中用 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'

于 2013-10-30T18:38:51.090 回答