使用未绑定的api查看LDAP中修改的条目

使用未绑定的api查看LDAP中修改的条目,ldap,unboundid-ldap-sdk,Ldap,Unboundid Ldap Sdk,以下是我希望在LDAP服务器端查看已修改的LDAP中的已修改条目的要求?在未绑定的api中是否有任何api或代码,以便我可以在LDAP中查看已修改的条目?尽管您的问题并不十分清楚,我假设您正在询问是否有一种方法可以检测目录服务器中数据的更改,无论是在更改发生时还是之后。实现这一点的方法有很多,但最适合您的解决方案取决于您使用的服务器提供的功能、服务器中的更改量以及您的特定需求 如果您正在使用的服务器支持内容同步控件(com.unbounded.ldap.sdk.controls.Content

以下是我希望在LDAP服务器端查看已修改的LDAP中的已修改条目的要求?在未绑定的api中是否有任何api或代码,以便我可以在LDAP中查看已修改的条目?

尽管您的问题并不十分清楚,我假设您正在询问是否有一种方法可以检测目录服务器中数据的更改,无论是在更改发生时还是之后。实现这一点的方法有很多,但最适合您的解决方案取决于您使用的服务器提供的功能、服务器中的更改量以及您的特定需求

  • 如果您正在使用的服务器支持内容同步控件(com.unbounded.ldap.sdk.controls.ContentSyncRequestControl),那么这可能是一种非常有用的方法,可以在发生更改时获取有关条目的信息,以及在搜索未激活时处理的更改

  • 如果希望实时收到更新条目的通知,可以使用持久搜索(com.unbounded.ldap.sdk.controls.PersistentSearchRequestControl)。如果您的服务器支持此功能,则可以使用此功能让服务器在处理更改时发送添加、删除、修改和/或修改DN操作所针对的客户端条目。但是,对于可能有大量更改的情况,或者对于检测可能在持久性搜索未激活时已处理的更改,此选项并不是很好

  • 如果您使用的是Active Directory,则DirSync控件(com.unbounded.ldap.sdk.experimental.ActiveDirectoryDirSyncControl)可能有助于检测更改

  • 如果您使用的服务器提供了LDAP变更日志,那么您可以定期轮询它以检索新的变更日志条目(com.unbounded.LDAP.sdk.ChangeLogEntry),这些条目提供了有关服务器中处理的变更的信息。您可以将此功能与changelog上的持久搜索结合使用,以在处理更改时检索更改通知,同时还可以在搜索中断时从中断的位置提取更改通知

  • 如果所有其他操作都失败,则可以使用范围搜索,以createTimestamp和/或modifyTimestamp属性为目标,识别在指定时间后创建和/或更新的条目

您可能需要与您的目录服务器供应商联系,以确定他们是否提供了检测更改的替代机制,或者他们是否对这些方法中的哪种最适合您的需要有任何建议。

正如Neil所说

eDirectory有一个将提供有关条目发生的任何(?)更改的信息


-jim

谢谢。这对我很有帮助。请告诉我一件事,如何获取在上述条目中修改的属性。对于这些条目,唯一能够确定应用于条目的特定更改的机制是使用LDAP更改日志。其他机制仅提供已更新项的指示。请告诉我一件事,如何确定Ldap服务器支持持久性搜索或内容同步。我已阅读了Ldap中的supportedControl属性,该属性说明了Ldap支持的所有控件?是否正确?是,根DSE中的supportedControl属性可用于确定这一点。例如:RootDSE RootDSE=connection.getRootDSE();如果(rootDSE.supportsControl(PersistentSearchRequestControl.PERSISTENT\u SEARCH\u REQUEST\u OID)){//服务器支持持久搜索请求控件。}