你好,我有一个问题,想要使用LDAP创建简单的登录。我从spring.io网站下载了入门项目:Getting started LDAP。
使用ldif文件时它可以完美地工作,但我想用运行中的LDAP服务器替换它。我已经尝试了几天,但没有进展。我在getting started项目的WebSecurityConfig中使用了以下代码,取得了最好的结果:
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder.authenticationProvider(activeDirectoryLdapAuthenticationProvider()).userDetailsService(userDetailsService());
}
@Bean
public AuthenticationManager authenticationManager() {
return new ProviderManager(Arrays.asList(activeDirectoryLdapAuthenticationProvider()));
}
@Bean
public AuthenticationProvider activeDirectoryLdapAuthenticationProvider() {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(null, "ldap://ip:port/", "ou=GROUP,dc=domain,dc=com");
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
return provider;
}
}
如果我使用格式为“用户名”“密码”的正确用户名和密码尝试登录,则控制台输出:ActiveDirectoryLdapAuthenticationProvider: Active Directory身份验证失败:提供的密码无效。
如果我使用“username@domain.com”和正确的密码,则页面只会重新加载,没有任何输出到控制台。
如果我使用随机的用户名和密码,则控制台输出:Active Directory身份验证失败:提供的密码无效。
有人能帮忙吗?