При мапинге групп в LDAP на роли в Security приходит пустая коллекция Collection authorities

Пытаюсь смапить группы в ldap роли в security

Класс мапинга:

public class LDAPGrantedAuthoritiesMapper implements GrantedAuthoritiesMapper {
    private String APP_USER ="Ldap User Group";   //default user ldap group
    private String APP_ADMIN ="Ldap Admin Group"; //default adming ldap group

@Override
public Collection<? extends GrantedAuthority> mapAuthorities(
        final Collection<? extends GrantedAuthority> authorities) // ВОТ тут приходит authorities размерностью 0. Почему?

{

    Set<LDAPAuthority> roles = EnumSet.noneOf(LDAPAuthority.class);

    for (GrantedAuthority authority : authorities)
    {
        if (APP_ADMIN.equals(authority.getAuthority()))
        {
            roles.add(LDAPAuthority.ADMIN);
        }
        roles.add(LDAPAuthority.USER);
    }
    roles.add(LDAPAuthority.ADMIN);
    return roles;
}

}

LDAPAuthority:

public enum LDAPAuthority implements GrantedAuthority {
    USER, ADMIN;

    public String getAuthority() {
        return name();
    }
}

Настройка в WebSecurityConfig:

@Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        ActiveDirectoryLdapAuthenticationProvider adProvider
                = new ActiveDirectoryLdapAuthenticationProvider(ldapDomain, ldapUrl);
        adProvider.setConvertSubErrorCodesToExceptions(true);
        adProvider.setUseAuthenticationRequestCredentials(true);
        adProvider.setSearchFilter(groupSearchFilter);
        adProvider.setAuthoritiesMapper(ldapAuthoritiesMapper());
        adProvider.setUseAuthenticationRequestCredentials(true);
        auth.authenticationProvider(adProvider);

    }

    @Bean
    public LDAPGrantedAuthoritiesMapper ldapAuthoritiesMapper() {    
        return new LDAPGrantedAuthoritiesMapper();
    }

Просто вход работает нормально. Но мапинга не происходит.


Ответы (0 шт):