Spring Security supporta già LDAP pronto all'uso. In realtà ha un intero capitolo su questo.
Per utilizzare e configurare LDAP, aggiungi spring-security-ldap
dipendenza e il prossimo utilizzo di AuthenticationManagerBuilder.ldapAuthentication
per configurarlo. Il LdapAuthenticationProviderConfigurer
ti permette di impostare le cose necessarie.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Qualcosa del genere (dovrebbe darti almeno un'idea su cosa/come configurare le cose) ci sono più opzioni ma controlla i javadocs per quello. Se non puoi utilizzare UserService
così come recuperare i ruoli (perché solo i ruoli sono nel database), quindi implementare il tuo LdapAuthoritiesPopulator
per quello.