摘要
使用BindAuthenticator
来针对LDAP进行身份验证,使用正确的凭据可以很好地工作,但是使用错误的密码,它会停滞而不是失败,最终会引发超时异常。
实际行为
如上所述。
预期行为
如果密码错误,BindAuthenticator
将立即失败。
配置
请参见下面的示例。
版本
Spring Security 5.2.0。发布
样本
var contextsource = new LdapContextsource();
contextsource.setUrls(urls);
contextsource.afterPropertiesSet();
var authenticator = new BindAuthenticator(contextsource);
authenticator.setUserSearch(new FilterBasedLdapUserSearch(base,filter,contextsource));
authenticator.afterPropertiesSet();
var correct = new usernamePasswordauthenticationToken(username,"correct");
authenticator.authenticate(correct); // <- it succeeds immediately
var wrong = new usernamePasswordauthenticationToken(username,"wrong");
authenticator.authenticate(wrong); // <- it stalls and timeouts