При мапинге групп в LDAP на роли в Security приходит пустая коллекция Collection extends GrantedAuthority> 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();
}
Просто вход работает нормально. Но мапинга не происходит.