Spring Security już od razu obsługuje protokół LDAP. W rzeczywistości ma cały rozdział w tej sprawie.
Aby używać i skonfigurować LDAP, dodaj spring-security-ldap
zależność, a następnie użyj AuthenticationManagerBuilder.ldapAuthentication
aby go skonfigurować. LdapAuthenticationProviderConfigurer
pozwala ustawić potrzebne rzeczy.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Coś w tym stylu (powinno dać ci przynajmniej wyobrażenie o tym, co/jak skonfigurować) jest więcej opcji, ale sprawdź javadocs. Jeśli nie możesz użyć UserService
podobnie jak pobieranie ról (ponieważ tylko role znajdują się w bazie danych), a następnie zaimplementuj własne LdapAuthoritiesPopulator
za to.