Sto provando a duplicare un layout/schema LDAP dal campo che l'applicazione deve affrontare e sto tentando di ricreare + testarlo tramite un test automatico con il server LDAP UnboundID integrabile.Creazione di uno schema personalizzato/aggiunta allo schema esistente per un server LDAP UnboundID in memoria
La situazione che deve affrontare è la proprietà 'memberOf' dello schema utente come Active Directory ha ... ma non sono abbastanza sicuro di come aggiungere una classe 'utente' a questo ldap in memoria.
1) È possibile? 2) Esiste una strategia migliore? 3) E in particolare cosa dovrei fare? Sono un principiante LDAP.
Di seguito è riportato il mio codice non lavorativo.
Grazie, Mike Kohout
public class TestOpenLdap2
{
private InMemoryDirectoryServer server;
@Before
public void start() throws Exception
{
InMemoryDirectoryServerConfig config = new InMemoryDirectoryServerConfig("dc=com");
config.addAdditionalBindCredentials("cn=admin,ou=People,dc=example,dc=com", "cred");
InMemoryListenerConfig listenerConfig = new InMemoryListenerConfig("test", null, 33390, null, null, null);
config.setListenerConfigs(listenerConfig);
server = new InMemoryDirectoryServer(config);
server.startListening();
}
@Test
public void testMemberOf() throws Exception
{
addEntry("dn: dc=com", "objectClass: top", "objectClass: domain", "dc: com");
ObjectClassDefinition oc = new ObjectClassDefinition("10.19.19.78", new String[]{"user"}, "", false, new String[]{"TOP"},
ObjectClassType.STRUCTURAL, new String[]{"memberOf"},
new String[]{}, new HashMap());
addEntry("dn: cn=schema2,dc=com", "objectClass: top", "objectClass: ldapSubEntry", "objectClass: subschema", "cn: schema2",
"objectClasses: " + oc.toString());
addEntry("dn: dc=people,dc=com", "objectClass: top", "objectClass: domain", "dc: people");
addEntry("dn: dc=groups,dc=com", "objectClass: top", "objectClass: domain", "dc: groups");
addEntry("dn: cn=test-group,dc=groups,dc=com", "objectClass: groupOfUniqueNames", "cn: test group");
addEntry("dn: cn=Testy Tester,dc=people,dc=com", "objectClass: Person", "objectClass: user", "objectClass: organizationalPerson", "sn: Tester", "cn: Testy Tester", "memberOf: cn=test-group,dc=groups,dc=com");
}
public void addEntry(String... args) throws LDIFException, LDAPException
{
LDAPResult result = server.add(args);
assert (result.getResultCode().intValue() == 0);
System.out.println("added entry:" + Arrays.asList(args));
}
Mi viene restituito un 'Impossibile aggiungere una voce con un DN uguale o subordinato alla sottoschema subentry DN 'cn = schema'' error quando provo questo, sdk v.2.3.4 – SelimOber