O Spring Security já suporta LDAP pronto para uso. Na verdade, ele tem um capítulo inteiro nisto.
Para usar e configurar o LDAP, adicione o
spring-security-ldap
dependência e em seguida use o AuthenticationManagerBuilder.ldapAuthentication
para configurá-lo. O LdapAuthenticationProviderConfigurer
permite que você configure as coisas necessárias. @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 assim (deve dar-lhe pelo menos uma ideia sobre o que/como configurar as coisas) existem mais opções, mas verifique os javadocs para isso. Se você não puder usar o
UserService
como é para recuperar as funções (porque apenas as funções estão no banco de dados), implemente seu próprio LdapAuthoritiesPopulator
por isso.