如何在 OpenDJ 服务器中获取旧值?

How to get old value in OpenDJ server?

我已经在独立的 OpenDJ 服务器上启用了更新日志,并且 "cn=changelog" 作为节点之一出现。我的问题是,从 "cn=changelog" 获取数据后,属性 "changes" 只包含更改属性的新值,没有旧值。例如。当属性 "cn" 从 "Peter" 更改为 "Paul" 时,在 "changes" 中只有 "Paul"。是否也可以获得属性的旧值?如果是的话,你能告诉我应该在哪里搜索它或者我应该如何配置 OpenDJ 来获取它吗?

cn=changelog returns 执行的操作:

  • 添加操作包含正在添加的整个条目,
  • 删除操作仅包含删除条目的 dn,
  • 修改dn包含旧dn和新rdn,
  • 修改操作可能仅包含新值(在 REPLACE 修改类型的情况下)、删除的值(在 DELETE 修改类型的情况下)、新值(在 ADD 修改类型的情况下),或者不包含值(在 INCREMENT 修改类型的情况下)。请注意,各种修改类型可以组合在同一个修改操作中,因此您可能会看到包含旧值的 DELETE + ADD,但这不是强制性的。

好的,在深入研究 documentation (Procedure 8.15) 之后,我发现可以设置 'ecl-include' 选项,这会导致更改日志条目包含新属性 - 'includedAttributes'。该属性包括我们在 'ecl-include' 选项中定义的那些属性的旧值(在条目修改之前)。但缺点是 'includedAttributes' 包含所有已定义的属性 - 无论这些属性在条目修改期间是否已更改。所以,对于我的问题,应该这样配置:

dsconfig set-external-changelog-domain-prop -h host -p port -D cn="Directory Manager" -w password --set ecl-include:"cn"

从现在开始,下一个更改日志条目将包含具有旧 'cn' 值的 'includedAttributes' 属性,即 'Peter'。