Spring Security unterstützt LDAP bereits out-of-the-box. Es hat tatsächlich ein ganzes Kapitel dazu.
Um LDAP zu verwenden und zu konfigurieren, fügen Sie spring-security-ldap
hinzu Abhängigkeit und verwenden Sie als nächstes den AuthenticationManagerBuilder.ldapAuthentication
um es zu konfigurieren. Der LdapAuthenticationProviderConfigurer
ermöglicht es Ihnen, die erforderlichen Dinge einzurichten.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
So etwas (es sollte Ihnen zumindest eine Vorstellung davon geben, was/wie die Dinge zu konfigurieren sind) Es gibt mehr Optionen, aber überprüfen Sie die Javadocs darauf. Wenn Sie den UserService
nicht nutzen können so wie es ist, um die Rollen abzurufen (weil sich nur die Rollen in der Datenbank befinden) dann implementieren Sie Ihren eigenen LdapAuthoritiesPopulator
dafür.