Grails 覆盖默认的电子邮件验证

Posted

技术标签:

【中文标题】Grails 覆盖默认的电子邮件验证【英文标题】:Grails override default email validation 【发布时间】:2015-11-06 18:48:30 【问题描述】:

我发现 grails 验证也会拒绝某些有效的电子邮件地址。我在github上开了一个问题here

有没有办法覆盖 grails 中的默认电子邮件验证,以便我可以为此编写自己的验证器?

编辑

我通过在 BuildConfig.groovy 中添加最新版本的 apache commons 验证器解决了这个问题:

compile "commons-validator:commons-validator:1.4.1"

但我仍将保留这个问题,因为我仍然想知道如何覆盖默认的 grails 电子邮件验证器。我希望它以某种方式在我使用了这样一些约束的域类中:

emailId(email:true,nullable:false)

我不应该在域类中更改这个email:true。这应该在某处被覆盖,以便 email:true 约束使用我的逻辑来验证电子邮件 ID。

【问题讨论】:

您可以在这里查看zorched.net/2008/01/25/…。这不会覆盖默认的电子邮件验证器,但您可以创建一个新的并使用它来代替默认的。 @AshrafPurno 我知道。这样我们就不能使用 emailId(email:true,nullable:false) 我需要一种方法,这样我就不必更改域类约束。 【参考方案1】:

删除email 约束并改用matches。我把正则表达式留给你:)

https://grails.github.io/grails-doc/latest/ref/Constraints/matches.html

【讨论】:

查看编辑。我不想更改域类约束。我只是希望他们通过覆盖来表现我想要的方式。

以上是关于Grails 覆盖默认的电子邮件验证的主要内容,如果未能解决你的问题,请参考以下文章

Grails:验证包含分隔的电子邮件地址列表的字符串

Grails中的电子邮件验证

Grails / Spring Security - 注册电子邮件未解锁帐户

Grails Spring Security 覆盖当前用户以查找多个字段而不仅仅是用户名

Grails 的用户管理插件/框架?

grails spring security core plugin - 使用用户名和电子邮件登录