Spring Security вече поддържа LDAP в готово състояние. Всъщност има цяла глава за това.
За да използвате и конфигурирате LDAP, добавете spring-security-ldap
зависимост и след това използвайте AuthenticationManagerBuilder.ldapAuthentication
за да го конфигурирате. LdapAuthenticationProviderConfigurer
ви позволява да настроите необходимите неща.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Нещо подобно (трябва да ви даде поне идея какво/как да конфигурирате нещата) има още опции, но проверете javadocs за това. Ако не можете да използвате UserService
както е да извлечете ролите (тъй като само ролите са в базата данни), след това внедрете свой собствен LdapAuthoritiesPopulator
за това.