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