JNDI(Java Naming and Directory Interface)를 사용하여 LDAP 데이터 검색(search), 추가(add), 삭제(delete)하기

JNDI(Java Naming and Directory Interface) API를 사용해서 이클립스에서 자바로 LDAP 엔트리를 조회하고 추가하고 삭제하겠습니다.

관련 포스트:

* 지난 시간에 OpenDJ를 설치하고  CLI 환경에서 ldapsearch 명령어로 샘플 데이터를 조회했고 LDAP 브라우저를 사용해서도 조회했습니다.
  • cn인 Aaccf Amar인 ldap 엔트리를 조회하겠습니다. 
  • JNDI를 사용하기 때문에 ldap sdk를 추가할 필요는 없습니다. 이클립스를 실행하고 프로젝트를 생성합니다.  아래의 코드를 복사해서 붙여 넣습니다. (설치한 LDAP 서버의 설정에 맞게 수정하세요.)

  • 실행하면 LDAP 브라우저의 검색 결과와 같은 내용을 콘솔에 출력합니다.
LDAP 데이터 검색하는 자바 코드 예제

  • 이번에는 데이터를 추가하고 삭제하겠습니다. 새로운 클라스 파일에 아래의 코드를 복붙합니다.
  • 메인에서 삭제 메소드는 일단 주석처리하였습니다. 실행해서 데이터를 추가한 뒤 LDAP 브라우저로 조회합니다. LDAP 브라우저에서 search 할 때 필터 값을 아래와 같이 줍니다.
아파치 디렉토리 스튜디오에서 필터 사용해서 search(검색) 하기




  • 데이터가 존재하는데 또 추가하려고 하면 아래와 같은 오류가 뜹니다.
javax.naming.NameAlreadyBoundException [LDAP error code 68]


  • 데이터 추가 메소드를 주석처리하고 삭제 메소드의 주석을 지우고 실행합니다. 다시 검색하시면 데이터가 사라진 것을 확인하실 수 있습니다.

Comments