Spring Security stöder redan LDAP direkt. Den har faktiskt ett helt kapitel på detta.
För att använda och konfigurera LDAP lägg till spring-security-ldap
beroende och använd sedan AuthenticationManagerBuilder.ldapAuthentication
för att konfigurera den. LdapAuthenticationProviderConfigurer
låter dig ställa in de nödvändiga sakerna.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Något sådant (det borde åtminstone ge dig en idé om vad/hur man konfigurerar saker) det finns fler alternativ men kolla javadocs för det. Om du inte kan använda UserService
som är för att hämta rollerna (eftersom bara rollerna finns i databasen) implementera sedan din egen LdapAuthoritiesPopulator
för det.