Spring Security sudah mendukung LDAP secara langsung. Ini sebenarnya memiliki seluruh bab ini.
Untuk menggunakan dan mengonfigurasi LDAP, tambahkan spring-security-ldap
ketergantungan dan selanjutnya gunakan AuthenticationManagerBuilder.ldapAuthentication
untuk mengkonfigurasinya. LdapAuthenticationProviderConfigurer
memungkinkan Anda untuk mengatur hal-hal yang diperlukan.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.contextSource()
.url(...)
.port(...)
.managerDn(...)
.managerPassword(...)
.and()
.passwordEncoder(passwordEncoder())
.userSearchBase(...)
.ldapAuthoritiesPopulator(new UserServiceLdapAuthoritiesPopulater(this.userService));
}
Sesuatu seperti itu (setidaknya akan memberi Anda gambaran tentang apa/bagaimana mengkonfigurasi sesuatu) ada lebih banyak opsi tetapi periksa javadocs untuk itu. Jika Anda tidak dapat menggunakan UserService
seperti untuk mengambil peran (karena hanya peran yang ada di database) kemudian implementasikan LdapAuthoritiesPopulator
untuk itu.