4

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

4

2 回答 2

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 属性的范围搜索来识别在指定时间后创建和/或更新的条目。

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

于 2013-11-21T07:13:40.853 回答
0

正如尼尔所说。

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

-吉姆

于 2013-11-22T09:04:33.663 回答