Spring security 从用户名加载用户详细信息

Spring security 从用户名加载用户详细信息,spring-security,ldap,grails-2.0,Spring Security,Ldap,Grails 2.0,我有一个具有用户引用的域类: class MyThing { MyUser createdBy //... 通过使用Spring安全插件,我有一个很好的选择,就是我试图从引用中获取用户的电子邮件地址。使用springSecurityService.principal非常有效,但仅适用于当前登录的用户 如何获取用户的电子邮件地址 如果我不能简单地通过用户名引用“查找”,那么是否可以扩展我的Person类以从LDAP插件获取电子邮件地址并保存到数据库?我通过首先向Person类添加

我有一个具有用户引用的域类:

class MyThing {
    MyUser createdBy
    //...
通过使用Spring安全插件,我有一个很好的选择,就是我试图从引用中获取用户的电子邮件地址。使用
springSecurityService.principal
非常有效,但仅适用于当前登录的用户

如何获取用户的电子邮件地址


如果我不能简单地通过用户名引用“查找”,那么是否可以扩展我的Person类以从LDAP插件获取电子邮件地址并保存到数据库?

我通过首先向Person类添加电子邮件属性来解决问题

class MyUser {
    String username
    String email
然后,通过使用ldap模板属性映射,我能够提取电子邮件以及用户名

tokens.add(attributes.get("sAMAccountName").get().toString());
tokens.add(attributes.get("mail").get().toString());

从那里,它只是得到了属性
createdBy.email

我可能还没有完全理解你的问题。Spring security在http会话中仅存储登录的用户详细信息。如果您想了解其他用户的详细信息,那么您需要从数据库/ldap中检索用户名。