在我之前的问题中,我正在努力为从ldap登录的用户添加角色 . 希望我设法为ldap注册自定义AuthoritiesPopulator . 但现在我想为应用程序添加更多功能,为此我需要更多关于用户的信息而不是login-name .

遵循本指南:http://grails-plugins.github.io/grails-spring-security-ldap/docs/manual.106/guide/2.%20Usage.html

我猜我必须实现自己的ldap详细信息上下文映射器,我做了如下所示:

class CustomUserDetailsContextMapper implements UserDetailsContextMapper {

   @Override
   public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection<? extends GrantedAuthority> authorities) {
      // FETCHING DATA and ADDING ROLE
      return new CustomUserDetails(trueUsername, null, true, true, true, true, list, email)
   }

   @Override
   public void mapUserToContext(UserDetails arg0, DirContextAdapter arg1) {
      throw new IllegalStateException("Only retrieving data from AD is currently supported")    
   }

}

并在resource.config中添加映射:

ldapUserDetailsMapper(amelinium1.grails.CustomUserDetailsContextMapper)

但它似乎没有用 . 应用程序似乎使用GormUserDetailsService来返回User而不是Context . 我错过了什么吗?非常感谢任何帮助!