在LDAP中使用UnboundId api查看已修改的条目

时间:2013-11-21 06:42:10

标签: ldap unboundid-ldap-sdk

以下是我要查看LDAP中已修改的条目的要求,这些条目已在LDAP服务器端修改过吗?Unboundid api中是否有任何api或代码,以便我可以在LDAP中看到已修改的条目?

2 个答案:

答案 0 :(得分:8)

虽然您的问题并不完全清楚,但我认为您是否有办法检测目录服务器中的数据更改,无论是在发生时还是在事后发生的某个时间。有很多方法可以实现这一点,尽管最适合您的解决方案取决于您使用的服务器提供的功能,服务器中的更改量以及您的特定要求。

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

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

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

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

  • 如果所有其他方法都失败了,您可以使用定位搜索来定位createTimestamp和/或modifyTimestamp属性,以识别在指定时间后创建和/或更新的条目。

您可能希望与目录服务器供应商核实,以确定它们是否提供了检测更改的任何备用机制,或者是否有任何关于哪种方法最适合您的需求的建议。

答案 1 :(得分:0)

像尼尔说的那样。

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

-Jim