Я пишу модульный тест для своего кода и для целей тестирования Я использую сервер LDAP unboundsId. Я создал и подключился к серверу inmemory, и после этого я хочу выполнить запрос синхронизации, но сервер говорит: «Сервер LDM InMemory не поддерживает contentSyncRequestControl». Я заглянул в серверные документы API, есть количество контролей. Я попытался напечатать OIDs элементов управления, которые поддерживаются, и OID для contentSyncRequestControl отсутствует. так что мой вопрос заключается в том, как включить или добавить элементы управления на сервере MMORPM-сервера? Посмотрите следующий код для ссылки.Как добавить/настроить элементы управления для сервера InMemoryLDAP UnboundID
public class InMemoryLDAPServer {
private Logger logger = LoggerFactory.getLogger(InMemoryLDAPServer.class);
private InMemoryDirectoryServer mServer;
final String DEFAULT_INMEMORY_HOST = "localhost";
final int DEFAULT_INMEMORY_PORT = 5389;
final String LDAP_LISTENER_NAME = "LDAP_TEST_SERVER";
final String INMEMORY_BASE = "dc=Contoso,dc=net";
final String INMEMORY_DOMAIN = "Contoso.net";
final String INMEMORY_USER = "uid=TestAdmin";
final String INMEMORY_PASS = "password";
public void start(int port) {
try {
InMemoryDirectoryServerConfig config =
new InMemoryDirectoryServerConfig(INMEMORY_BASE);
config.setGenerateOperationalAttributes(true);
config.addAdditionalBindCredentials(INMEMORY_USER, INMEMORY_PASS);
config.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig(LDAP_LISTENER_NAME, port));
mServer = new InMemoryDirectoryServer(config);
URI ldifFixture= InMemoryLDAPServer.class.getResource("/Contoso_rootdse_open.ldif").toURI();
mServer.importFromLDIF(true, new LDIFReader(new File(ldifFixture)));
mServer.startListening(LDAP_LISTENER_NAME);
// I tried here to check which controlls are supported
//The OID (1.3.6.1.4.1.4203.1.9.1.1) for the sync request control.
LDAPConnection con = mServer.getConnection();
RootDSE rootDSE = con.getRootDSE();
String[] oids = rootDSE.getSupportedControlOIDs();
for(int i=0; i<oids.length; i++){
System.out.println(oids[i]);
}
con.close();
} catch(Exception exception) {
logger.error("Failed to start in memory ldap server", exception);
}
}
public void start() {
start(DEFAULT_INMEMORY_PORT);
}
public void stop() {
try {
mServer.shutDown(LDAP_LISTENER_NAME, true);
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
результат
здесь по умолчанию управления OIDs поддерживается.
1.2.840.113556.1.4.1413
1.2.840.113556.1.4.319
1.2.840.113556.1.4.473
1.2.840.113556.1.4.805
1.3.6.1.1.12
1.3.6.1.1.13.1
1.3.6.1.1.13.2
1.3.6.1.1.21.2
1.3.6.1.1.22
1.3.6.1.4.1.7628.5.101.1
2.16.840.1.113730.3.4.12
2.16.840.1.113730.3.4.16
2.16.840.1.113730.3.4.18
2.16.840.1.113730.3.4.2
2.16.840.1.113730.3.4.9
Ссылка на API документ: https://docs.ldap.com/ldap-sdk/docs/javadoc/index.html
Пожалуйста, помогите мне в правильной конфигурации, пожалуйста.
Как я уже говорил, я хочу, чтобы запросы на синхронизацию контента, контент-синхронизацию и контроль информации о содержимом. Так что я могу выполнять операции синхронизации при тестировании. Или есть какой-либо способ, с помощью которого я могу перехватить «запрос синхронизации», а затем возвращать содержимое прямой вручную. Любой пример кода будет полезен. – Mubasher