Spring Security již podporuje LDAP ihned po vybalení. Ve skutečnosti má celou kapitolu na tomto.
Chcete-li použít a nakonfigurovat LDAP, přidejte spring-security-ldap
závislost a dále použijte AuthenticationManagerBuilder.ldapAuthentication
jej nakonfigurovat. LdapAuthenticationProviderConfigurer
umožňuje nastavit potřebné věci.
@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ěco takového (mělo by vám to poskytnout alespoň představu o tom, co/jak věci nakonfigurovat) existuje více možností, ale podívejte se na javadocs. Pokud nemůžete použít UserService
stejně jako načíst role (protože v databázi jsou pouze role) a poté implementovat vlastní LdapAuthoritiesPopulator
za to.