Я прочитал весну LDAP reference docs и не смог выяснить, автоматизирована ли аутентификация пользователя на сервере LDAP или нет.Проверка подлинности LDAP (автоматическая или нет?)
Под «автоматическим» я подразумеваю, что это происходит автоматически при создании экземпляра bean, если вы предоставите userDn и пароль в своем ContextSource
. То есть программисту никогда не нужно звонить LdapTemplate.authenticate(...)
- это происходит «за кадром».
Так что я хотел бы знать,
- Если аутентификация Spring LDAP автоматически
- Если есть поля, я могу установить, чтобы изменить это поведение
Спасибо,
KTM
EDIT: задаю этот вопрос в контексте некоторого кода, который я написал. Следующие ContextSource
являются одним из источников контекста в моем файле beans, который пользователь может использовать. Он используется для настройки userDn и пароля во время выполнения (по соображениям безопасности). Я хочу знать, действительно ли приложение LDAP будет использовать userDn/password, который я собираю во время выполнения при аутентификации. (Предшествующая ли аутентификация выполнения моего кода? Игнорировать ли в userDn/пароль поле, конфигурирует мой код?)
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;
}
}
добавил некоторый соответствующий исходный код – ktm5124
Я считаю, что он работает ... Я пробовал следующий тест: удалить свойство url из файла beans и вместо этого установить url (с вызовом setUrl) в приведенном выше методе resolAuthInfo. Приложение все еще работает и делает запрос успешно. Конечно, без вызова setUrl это не сработает. Таким образом, вышеприведенный код что-то делает. – ktm5124