Spring Security ya es compatible con LDAP listo para usar. De hecho, tiene un capítulo completo en esto.
Para usar y configurar LDAP, agregue spring-security-ldap
dependencia y luego use AuthenticationManagerBuilder.ldapAuthentication
para configurarlo. LdapAuthenticationProviderConfigurer
le permite configurar las cosas necesarias.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Algo así (debería darle al menos una idea sobre qué/cómo configurar las cosas) hay más opciones, pero verifique los javadocs para eso. Si no puede utilizar el UserService
como es para recuperar los roles (porque solo los roles están en la base de datos) luego implemente su propio LdapAuthoritiesPopulator
por eso.