私は実際にこのフォーラムに初めて参加し、LDAP サブツリー全体を別のツリーにコピーする簡単な方法を見つけるために数日間試み続けました。役立つものが見つからなかったので、ここにも質問をドロップすることを考えました. プログラムでこれを行う方法を知っている人はいますか?
追加、削除、検索などの通常の操作には、Spring LDAP を使用しています。
どうもありがとう !
私は実際にはSpring LDAPを知りませんが、LDAPインターフェースがサブツリー全体を移動/名前変更またはコピーするための高レベルの抽象化を提供しない場合、すべてのサブツリーノードを再帰的に移動/名前変更またはコピーする必要があります。LDAP API は、そのようなオプションを直接提供しません。
以下は疑似コードです。
function copySubtree(oldDn, newDn)
{
copyNode(oldDn, newDn); // the new node will be created here
if (nodeHasChildren(oldDn) {
foreach (nodeGetChildren(oldDn) as childDn) {
childRdn=getRdn(childDn); // we have to get the 'local' part, the so called RDN
newChildDn=childRdn + ',' + newDn; // the new DN will be the old RDN concatenated with the new parent's DN
copySubtree(childDn, newChildDn); // call this function recursively
}
}
}
パスワードはコピーするのが難しいことに注意してください。LDAP API 経由でそれらを読み取れる場合と読み取れない場合があります。これは、これを使用している LDAP 実装によって異なります。
したがって、新しい場所へのコピーでは、必要なものまたは必要なものがすべて取得されない場合があります。