2008-09-30 5 views
1

저는이 포럼에 실제로 처음 생겼습니다. 며칠 동안 전체 LDAP 하위 트리를 다른 트리로 쉽게 복사 할 수있는 방법을 찾으려고 계속 노력했습니다. 내가 쓸모있는 것을 찾을 수 없었기 때문에 여기에 질문을 던지려고 생각했습니다. 아무도 이것을 programatically하는 방법을 알고 있습니까?LDAP 전체 하위 트리 복사본

add, remove, search와 같은 일반적인 작업의 경우 Spring LDAP를 사용하고 있습니다.

고맙습니다.

답변

1

실제로 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 
     } 
    } 
} 
0

이 암호를 복사 까다로운 참고 마십시오

다음

는 의사 코드입니다. LDAP API를 통해 읽을 수도 있고 읽지 못할 수도 있습니다. 그것은 당신이 이것을 사용하는 LDAP 구현에 달려 있습니다.

따라서 새 위치로 복사하면 원하는 모든 것을 얻을 수 없을 수도 있습니다.

1

LDIF로 덤프하고 검색을 통해 DN을 편집 & (또는 스크립트를 통해) 바꾸고 새 LDIF를 가져옵니다.

스프링이이를 수행하는 도구가 아닐 수도 있습니다. Spring을 사용하여 디렉토리를 조작해야합니까? OpenLDAP의 ldapsearch를 가정하고 ldapadd는 모든 서버에 대해 작동해야하며 LDIF를 덤프 /로드합니다. DN에 스페셜 caractères있을 때

+0

, 그것은이 DN :: Y249MDYwMDAwMTYzLG91PTA2MDAwMDE2MyxvdT0wNixvdT1Qcm92ZW5jZS1BbHBlcy0gQ8O0dGUgZCdBenVyLG91PURHUyxvdT1ER1N2MyxvPWVwaWNvbmNlcHQsYz1mcg의 == 같은 인코딩 및 –

+0

을 anaything 내가 변경할 수 없습니다 그것은 그냥 Base64로 .. CN = 060000163, OU = 060000163, OU = 06, OU = 프로방스 알프스 코트 다 쥐르, ou = DGS, ou = DGSv3, o = epiconcept, c = fr –

관련 문제