我正在使用grails,我有以下域类:
class User {
transient springSecurityService
String password
static belongsTo = [person: Person]
}
和
class Person {
String name
String emailAddress
....
}
我想使用person对象的电子邮件地址作为Spring Security中的用户名。
根据Spring Security手册,只需将grails.plugins.springsecurity.userLookup.usernamePropertyName
的属性设置为非“用户名”字段即可。
我已经尝试过person.emailAddress,但这不起作用。
如何让Spring安全性使用Person对用户的引用?我不能把密码放在Person类上,我试图使用继承(这会带来其他问题)。
所以我把它追溯到GormUserDetailsService,在那里被召唤和称赞。用于查找用户的代码是:
def user = User.findWhere((conf.userLookup.usernamePropertyName): username)
if (!user) {
log.warn "User not found: $username"
我如何构造userNamePropertyName以便我可以通过子属性查看它?