Spring Security understøtter allerede LDAP ud af boksen. Det har faktisk et helt kapitel på dette.
For at bruge og konfigurere LDAP skal du tilføje spring-security-ldap
afhængighed og derefter bruge AuthenticationManagerBuilder.ldapAuthentication
at konfigurere det. LdapAuthenticationProviderConfigurer
giver dig mulighed for at sætte de nødvendige ting op.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Sådan noget (det burde i det mindste give dig en idé om hvad/hvordan man konfigurerer tingene) der er flere muligheder, men tjek javadocs for det. Hvis du ikke kan bruge UserService
som det er for at hente rollerne (fordi kun rollerne er i databasen), så implementer din egen LdapAuthoritiesPopulator
for det.