在我之前的问题中,我正致力于为从ldap登录的用户添加角色。希望我设法为ldap注册自定义AuthoritiesPopulator。但现在我想为应用程序添加更多功能,为此我需要更多关于用户的信息而不是登录名。
遵循本指南: 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。我错过了什么吗? 非常感谢任何帮助!