我通读了 Spring LDAP 参考文档,无法确定针对 LDAP 服务器的用户身份验证是否是自动的。
“自动”是指如果您在ContextSource
. 也就是说,程序员永远不必调用LdapTemplate.authenticate(...)
- 它发生在“幕后”。
所以我想知道
- 如果 Spring LDAP 身份验证是自动的
- 如果有字段我可以设置以更改此行为
谢谢,
ktm
编辑:我在我编写的一些代码的上下文中提出了这个问题。以下ContextSource
是我的 beans 文件中的上下文源之一,用户可以选择使用它。它用于在运行时配置 userDn 和密码(出于安全原因)。我想知道 LDAP 应用程序是否会实际使用我在运行时在身份验证中收集的 userDn/密码。(身份验证是否先于我的代码执行?它是否忽略了我的代码配置的 userDn/password 字段?)
public class RuntimeContext extends LdapContextSource {
public RuntimeContext() {
super();
if (!resolveAuthInfo()) {
System.out.println("Failed to resolve auth info. Exiting...");
System.exit(1);
}
}
public boolean resolveAuthInfo()
{
String myUserDn, myPassword;
try {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("userDn: ");
myUserDn = br.readLine();
System.out.print("password: ");
myPassword = br.readLine();
} catch (IOException e) {
return false;
}
super.setUserDn(myUserDn);
super.setPassword(myPassword);
return true;
}
}