具有三个参数的Grails Spring安全认证

具有三个参数的Grails Spring安全认证,grails,spring-security,grails-domain-class,Grails,Spring Security,Grails Domain Class,目前我有一个用户域模型,如下所示: class User { transient springSecurityService String username String password String firstName String lastName boolean enabled = true static transients = ['springSecurityService', 'enabled'] static constraints = {

目前我有一个用户域模型,如下所示:

class User {
  transient springSecurityService

  String username
  String password
  String firstName
  String lastName
  boolean enabled = true

  static transients = ['springSecurityService', 'enabled']

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

}
和Spring安全身份验证和角色、用户角色模型都可以正常工作。 但我需要用用户名和密码以及emailID覆盖用户身份验证,emailID将是唯一的,并且是一个外键

新的用户域模型是

class User {

  transient neatEncryptedType
  transient springSecurityService

  String username
  String password
  String emailId
  String firstName
  String lastName
  boolean enabled = true
}
如何使用电子邮件、用户名和密码进行身份验证?
有人建议如何覆盖spring安全认证吗?

我前阵子讲过spring安全插件的内部工作原理,其中一个例子是使用第三个参数的自定义登录。支持这一点需要几个步骤,因此请查看该流程的可下载代码。这并不困难,但需要一个自定义身份验证类、自定义过滤器和身份验证程序。但是它们都是基于现有的类,所以很简单