#ldap #exist-db
#ldap #exist-db
Вопрос:
Я пытаюсь настроить eXist на LDAP для аутентификации пользователей, и я проверил документацию на eXist LDAP Security. Оказывается, конфигурация по умолчанию поддерживает только три параметра: security.ldap.connection.url
(URL подключения к серверу LDAP), security.ldap.dn.user
(DN списка пользователей) и security.ldap.dn.group
(DN списка групп).
В моем случае это не работает, потому что сервер LDAP не разрешает анонимные запросы, что означает, что я должен предоставить имя пользователя / пароль для установления соединения.
Есть предложения о том, как я мог бы добиться этого, кроме как включить анонимные запросы на сервере LDAP?
Спасибо, Томас
Ответ №1:
Похоже, вы можете реализовать свою собственную фабрику контекста и настроить ее на exist с помощью параметра security.ldap.ContextFactory.ContextFactory.
Фабрика контекста — это класс Java, используемый для инициализации соединения с каталогом. Вы можете реализовать фабрику контекста, которая инициализирует соединение с помощью специальных учетных данных.
Идея состоит в том, чтобы реализовать класс, подобный этому:
public class MyCustomContextFactory implements InitialContextFactory {
public Context getInitialContext(Hashtable env) {
// Fetch the application DN and password somehow (config file...)
String applicationDN = ...;
String password = ...;
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, applicationDN);
env.put(Context.SECURITY_CREDENTIALS, password);
return new InitialDirContext(env);
}
}
Вы создаете jar-файл, добавляете его в classpath вашего сервера и указываете параметр конфигурации:
security.ldap.contextFactory = your.java.package.name.MyCustomContextFactory