我正在使用Spring Security插件,结合Spring Security UI插件。
它们都像魅力一样,但我的问题是我不希望我的用户拥有用户名,而是他/她应该使用电子邮件作为用户名。
因此,在注册阶段,我尝试从注册页面中删除用户名并设置
newUser.username = params.email
这样插件仍然可以访问变量用户名,但是这给了我验证错误,我只是想办法解决它。
有什么想法吗?有没有人做过类似的事情?
答案 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'