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

Grails 使用用户名作为电子邮件,Spring Security UI插件,grails,spring-security,grails-plugin,grails-2.0,grails-controller,Grails,Spring Security,Grails Plugin,Grails 2.0,Grails Controller,我正在使用SpringSecurity插件,与SpringSecurity UI插件结合使用 它们都很有魅力,但我的问题是,我不希望我的用户有用户名,而应该使用电子邮件作为用户名 因此,在注册阶段,我尝试从注册页面和设置中删除用户名 newUser.username = params.email 这样插件仍然可以访问变量username,但这给了我验证错误,我就是想不出解决方法 有什么想法吗?有人做过类似的事情吗?您可以修改spring security使用的默认用户字段 在Config.gr

我正在使用SpringSecurity插件,与SpringSecurity UI插件结合使用

它们都很有魅力,但我的问题是,我不希望我的用户有用户名,而应该使用电子邮件作为用户名

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

newUser.username = params.email
这样插件仍然可以访问变量username,但这给了我验证错误,我就是想不出解决方法


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

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

在Config.groovy中添加以下内容

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

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


您可以检查配置属性

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

在Config.groovy中添加以下内容

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

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


您可以检查配置属性

我最近通过将视图和控制器从spring security plugin复制到我的grails应用程序,并更新视图以显示emailAddress而不是用户名来完成这项工作。我还在用户域类中将username属性替换为emailAddress。确保按如下方式更新约束:

static constraints = {
    emailAddress email: true, blank: false, unique: true
    password blank: false, password: true
}
建议是正确的,适用于旧版本的Grails,新的语法配置(至少适用于Grails 2.3.1)是:


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

最近,我将视图和控制器从spring security插件复制到我的grails应用程序中,并更新视图以显示emailAddress而不是用户名。我还在用户域类中将username属性替换为emailAddress。确保按如下方式更新约束:

static constraints = {
    emailAddress email: true, blank: false, unique: true
    password blank: false, password: true
}
建议是正确的,适用于旧版本的Grails,新的语法配置(至少适用于Grails 2.3.1)是:


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

您得到了什么样的验证错误?这是我得到的第一个错误:字段“username”上的对象“grails.plugins.springsecurity.ui.RegisterCommand”中的字段错误:拒绝值[null];当我尝试设置电子邮件时,尝试通过执行user.username=params.email从params获取电子邮件,我仍然得到相同的结果。。错误消息显示用户名为空。因此,您应该确保params.emailYes中有一封有效的电子邮件。我理解这一点,但即使在将用户名设置为电子邮件后打印出params,也会失败。当我验证域类时,我仍然会得到那个错误。你会得到什么样的验证错误?这是我得到的第一个错误:在字段“username”上的对象“grails.plugins.springsecurity.ui.RegisterCommand”中的字段错误:拒绝值[null];当我尝试设置电子邮件时,尝试通过执行user.username=params.email从params获取电子邮件,我仍然得到相同的结果。。错误消息显示用户名为空。因此,您应该确保params.emailYes中有一封有效的电子邮件。我理解这一点,但即使在将用户名设置为电子邮件后打印出params,也会失败。当我验证域类时,我仍然会得到那个错误。AAA级链接!听起来很合理,但在我使用UI插件时,有一些内部类,例如RegistrationCommand,使用用户名。它还用于忘记密码和帐户确认。也许我应该删除用户名的所有痕迹,但我担心的是,某些地方希望用户名应该存在。很可能你已经看到,在这个过时的线程中有相同的代码示例,关于如何使用定制用户class.AAA级链接的spring security UI!听起来很合理,但在我使用UI插件时,有一些内部类,例如RegistrationCommand,使用用户名。它还用于忘记密码和帐户确认。也许我应该删除用户名的所有痕迹,但我担心的是,某些地方希望用户名应该存在。很可能您已经看到,在这个过时的线程中有相同的代码示例,关于如何将spring security UI与自定义用户类一起使用。