auf der Grundlage der vorgeschlagenen Kommentare, LDAP_SERVER_NOTIFICATION_OID Steuer Umsetzung auf AD arbeiten sollten . Siehe dieses sehr grundlegende Testbeispiel:
// LDAP_SERVER_NOTIFICATION_OID (1.2.840.113556.1.4.528)
@Test
public void test_LDAP_SERVER_NOTIFICATION_OID() throws LDAPException, InterruptedException
{
AsyncSearchResultListener myAsyncSearchResultListener = new MyLdapChangeAsyncListener();
SearchRequest searchRequest = new SearchRequest(
myAsyncSearchResultListener,
"DC=test,DC=lab,DC=com", // baseDN
SearchScope.SUB,
Filter.createPresenceFilter("objectClass"), null);
Control myControl = new Control("1.2.840.113556.1.4.528");
searchRequest.addControl(myControl);
AsyncRequestID asyncSearchId = connection.asyncSearch(searchRequest);
// Wait 15 seconds for changes to be returned
Thread.sleep(15000);
connection.abandon(asyncSearchId);
connection.close();
}
private class MyLdapChangeAsyncListener implements AsyncSearchResultListener
{
@Override
public void searchEntryReturned(SearchResultEntry searchEntry)
{
System.out.println(" >>> ldap searchEntryReturned: " + searchEntry);
}
@Override
public void searchReferenceReturned(SearchResultReference searchReference)
{
System.out.println(" >>> ldap searchReferenceReturned: " + searchReference);
}
@Override
public void searchResultReceived(AsyncRequestID requestID, SearchResult searchResult)
{
System.out.println(" >>> ldap searchResultReceived: " + requestID + "/" + searchResult);
}
}
Der Test macht nicht viel. Wartet 15 Sekunden, während alle Änderungen innerhalb der BaseDN ausgedruckt werden sollten.
Das DirSync-Steuerelement ist ein LDAP-Steuerelement (OID 1.2.840.113556.1.4.841). Es ist also nicht dasselbe wie das in der ersten Verbindung referenzierte; Aber möglicherweise eine gute Wahl für das gewünschte Ergebnis. AFIK, das UnboundID LDAP SDK unterstützt die LDAP_SERVER_NOTIFICATION_OID (1.2.840.113556.1.4.528) NICHT direkt, sollte aber relativ einfach zu implementieren sein. – jwilleke
@jwilleke Danke für das Aufzeigen. Ich bin kein Java-Experte und habe gerade die UnboundID-Dokumentation aus Neugierde überprüft, ohne weiter zu suchen. Ich werde meine Antwort bearbeiten, um Ihren Standpunkt einzubeziehen. – Esteban
Danke für die Antwort. Brauchen Sie keine aktive direcory Melodie? Methoden des Listeners werden nicht aufgerufen (in Bezug auf UnboundID LDAP SDK), wenn ich ein Attribut des Eintrags ändere. Ich habe versucht mit benutzerdefinierten Steuerelement (Code das gleiche wie PersistentSearchRequestControl), aber mit anderen OID (1.2.840.113556.1.4.528). Leider ist es nicht möglich dirSync zu installieren. – nikelyn