Настроить eXist - менеджер безопасности LDAP - PullRequest
2 голосов
/ 11 мая 2011

Я пытаюсь настроить eXist на LDAP для аутентификации пользователей, и я проверил документацию по eXist LDAP Security . Оказывается, конфигурация по умолчанию поддерживает только три параметра: security.ldap.connection.url (URL-адрес подключения сервера LDAP), security.ldap.dn.user (DN списка пользователей) и security.ldap.dn.group (DN списка групп).

Это не работает для моего случая, потому что сервер LDAP не разрешает анонимные запросы, что означает, что я должен предоставить имя пользователя / пароль для установления соединения.

Любое предложение о том, как я могу добиться этого, кроме включения анонимных запросов на сервере LDAP?

Спасибо, Томас

1 Ответ

0 голосов
/ 04 сентября 2011

Кажется, что вы можете реализовать свою собственную фабрику контекста и передать ее для существования с параметром security.ldap.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
...