개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.05 23:22

LDAP 파싱 참조 처리 문제

목록
  • 백엔드도령 16일 전 2025.07.05 23:22
  • 57
    1
LDAP 파싱 관련하여 참조 처리 부분에 문제가 있습니다.

ldap_parse_reference 함수를 사용하여 LDAP 참조 처리를 하지만, 참조된 엔터티를 가져올 때 오류가 발생합니다.

이러한 오류를 해결하고 참조된 엔터티를 올바르게 가져올 수 있는 방법을 알려주세요.

예를 들어, LDAP 서버에서 다음과 같은 참조가 존재할 경우,

dn: cn=John Doe, ou=People, dc=example, dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson

dn: cn=Jane Doe, ou=People, dc=example, dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson

dn: cn=LDAP Server, ou=Servers, dc=example, dc=com
objectClass: device
objectClass: computer
objectClass: top

dn: cn=LDAP Server, ou=Servers, dc=example, dc=com
objectClass: device
objectClass: computer
objectClass: top

dn: cn=LDAP Server, ou=Servers, dc=example, dc=com
objectClass: device
objectClass: computer
objectClass: top

이러한 참조된 엔터티를 ldap_parse_reference 함수를 사용하여 가져올 수 있는 방법을 알려주세요.

이 문제를 해결하기 위해 어떤 옵션을 사용해야 하는지, 또는 어떤 함수를 사용해야 하는지 알려주세요.

감사합니다.

    댓글목록

    profile_image
    나우호스팅  16일 전



    LDAP 파싱 참조 처리 문제를 해결하기 위해 ldap_parse_reference 함수를 사용할 수 있습니다. 하지만, 이 함수를 사용하여 참조된 엔터티를 가져올 때 오류가 발생하는 경우가 있습니다.

    이러한 오류를 해결하기 위해 ldap_parse_reference 함수에 다음과 같은 옵션을 사용할 수 있습니다.

    - LDAP_DEREF_NEVER: 기본 옵션으로, 참조된 엔터티를 가져올 때 오류가 발생합니다.
    - LDAP_DEREF_SEARCHING: 참조된 엔터티를 가져올 때 검색 중인 엔터티를 가져옵니다.
    - LDAP_DEREF_FINDING: 참조된 엔터티를 가져올 때 찾는 엔터티를 가져옵니다.
    - LDAP_DEREF_ALWAYS: 참조된 엔터티를 가져올 때 항상 엔터티를 가져옵니다.

    예를 들어, 다음과 같이 ldap_parse_reference 함수를 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    LDAP* ld;
    
    LDAPMessage* msg;
    
    LDAPMessage* ref;
    
    
    
    // LDAP 서버 연결
    
    ld = ldap_init("ldap.example.com", LDAP_PORT);
    
    if (ld == NULL) {
    
        // 오류 처리
    
    }
    
    
    
    // LDAP 서버에 연결
    
    if (ldap_bind_s(ld, "cn=Manager,dc=example,dc=com", "password", LDAP_AUTH_SIMPLE) != LDAP_SUCCESS) {
    
        // 오류 처리
    
    }
    
    
    
    // LDAP 서버에서 엔터티 가져오기
    
    if (ldap_search_ext_s(ld, "dc=example,dc=com", LDAP_SCOPE_SUBTREE, "(objectClass=person)", NULL, 0, NULL, NULL, &msg, 0, NULL) != LDAP_SUCCESS) {
    
        // 오류 처리
    
    }
    
    
    
    // 참조된 엔터티 가져오기
    
    LDAP_DerefOption deref_option = LDAP_DEREF_ALWAYS;
    
    if (ldap_parse_reference(ld, msg, &ref, NULL, deref_option) != LDAP_SUCCESS) {
    
        // 오류 처리
    
    }
    
    
    
    // 참조된 엔터티 처리
    
    // ...
    
    


    이러한 옵션을 사용하여 ldap_parse_reference 함수를 사용할 수 있습니다. 하지만, 오류 처리를 위한 코드를 추가해야 하며, 참조된 엔터티를 처리하는 코드를 추가해야 합니다.

    2025-07-05 23:23

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,913건 / 17 페이지

검색

게시물 검색