Grails Spring安全认证有三个参数

时间:2014-11-12 10:10:02

标签: grails spring-security grails-domain-class

目前,我有一个User模型,如下所示:

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
  }

}

使用Role,UserRole模型的Spring安全认证工作正常。 但我需要使用用户名和密码以及emailID覆盖用户身份验证,电子邮件ID将是唯一的,并且它是外键。

新用户域模型

class User {

  transient neatEncryptedType
  transient springSecurityService

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

如何使用电子邮件,用户名和密码进行身份验证? 请有人建议如何覆盖Spring安全认证?

1 个答案:

答案 0 :(得分:2)

我前段时间讨论过Spring Security插件的内部工作原理,我做的一个例子是带有第3个参数的自定义登录。有一些步骤可以支持这一点,因此请查看this blog post中可下载的代码以了解该过程。这并不困难,但需要自定义身份验证类,以及自定义筛选器和身份验证器。但它们都是基于现有的类,所以这一切都很简单。