1. INISAFE Web 설치테스트
  2. INISAFE Web 6.3테스트
  3. INISAFE Web PlusPack 테스트
  4. INISAFE Web 6.4 테스트
  5. INISAFEMail 테스트
  6. INISAFE Sign 테스트
  7. E2E 테스트
  8. 확장E2E 테스트
  9. INISAFE Web63 인증센터
  10. INISAFE Web64 인증센터
  11. INISAFEWeb for Flex 테스트
  12. SFilter 설치테스트
  13. Sfilter 테스트
  14. Sfilter plugin
  15. Sfilter plugin(E2E)
  16. Sfilter 인증센터
  17. 제품관련 Q&A
  18. 일반 Q&A
  19. 기술지원팀 자료실

[JAVA] JNDI를 사용한 LDAP search

조회수 51058 추천수 0 2008.07.11 20:04:50


import java.io.*;
import java.lang.*;
import java.text.*;
import java.util.*;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;


public class ldapsearch {

    public ldapsearch() {
    }

   // LDAP server에서 인증서 일련번호(serial)을 검색조건으로 하여 "attrIDs"에
   // 정의된 LDAP attribute들을 출력하는 예제

    public  static void ldapSearchBySerial(String serial)
    {
        Hashtable env           = new Hashtable(5, 0.75f);
        NamingEnumeration m_ne = null;

        // 검색된 결과 entry중 아래의 attribute들을 출력할 것임
        String[] attrIDs = {"cn", "serial", "mail", "uid"};
        //파라미터로 넘어온 인증서 일련번호를 가지고 LDAP filter를 조립
        String filter = "(serial=" + serial + ")";

        try
        {
            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
           //LDAP 서버의 "프로토콜://IP:포트"를 설정
            // 아래는 ldap 프로토콜을 사용하는 127.0.0.1 서버의 7389포트로 접속하는 경우

            env.put(Context.PROVIDER_URL, "
ldap://127.0.0.1:7389");

            DirContext dirCtx = new InitialDirContext(env);
            SearchControls constraints = new SearchControls();

            //검색범위를 하위디렉토까지 검색(SUBTREE)
            constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
            if (attrIDs != null)
                constraints.setReturningAttributes(attrIDs);

            //검색을 시작할 BASE DN을 설정하고, 검색
            m_ne = dirCtx.search("c=kr", filter, constraints);
            dirCtx.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        try{
            SearchResult sr = null;
            while(m_ne.hasMoreElements()){
                //System.out.println(m_ne.nextElement());
                sr = (SearchResult)m_ne.next();
                //dn출력시 BASE DN은 제외하고 출력된다.
                System.out.println(sr.getName()+","+"c=kr");
                for (int i=0; i< 4; i++) { //attrIDs member count
                 System.out.println(i + ": " + attrIDs[i] + " : " +
                        (String)sr.getAttributes().get(attrIDs[i]).get());
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }

   public static void main(String[] args) {
        ldapSearchBySerial("000000091812");
    } //main
} //class

List of Articles
번호 제목 글쓴이 날짜 조회수
20 JAVA 바이너리(class, jar)의 호환성 [레벨:7]권오수 2010-04-25 1128
19 [JAVA] 버전별 수출입 제한 패치 file [레벨:4]류수원 2009-07-10 5502
18 WAS에서 모듈을 로딩하지 못하는 경우 [레벨:7]권오수 2009-04-30 5760
17 [Java] UTF-16 인코딩의 Byte-order [레벨:0]전기태 2009-02-20 8232
16 이클립스 에러 imagefile [레벨:4]류수원 2009-01-29 8245
15 [JAVA] 암복호화 속도 측정 file [레벨:4]류수원 2008-09-29 11301
14 [JAVA] java.lang.OutOfMemoryError [레벨:7]권오수 2008-08-08 13022
13 [JAVA] byte[]-->String --> byte[] 형변환 문제 [레벨:7]권오수 2008-08-08 15226
12 [JAVA] JAVA TCPDUMP [레벨:7]권오수 2008-07-23 12387
11 [JAVA] 쓰레드덤프 예제 (명령어 또는 프로그래밍) file [레벨:0]전기태 2008-07-21 13312
10 [JAVA] JNDI란 무엇인가? [레벨:0]김인수 2008-07-16 13341
9 [JSP] POST 전송 예제 [레벨:4]류수원 2008-07-15 18253
» [JAVA] JNDI를 사용한 LDAP search [레벨:7]권오수 2008-07-11 51058
7 [JAVA] JNDI를 사용한 LDAP delete function [레벨:7]권오수 2008-07-11 12067
6 [JAVA] BASE64 [레벨:7]권오수 2008-07-09 13859
5 [servlet] 서블릿에서 전역변수 사용 시 문제점 [1] [레벨:4]류수원 2008-07-08 18218
4 [JAVA] X509Certificate type변경 방법 [레벨:7]권오수 2008-06-26 12085
3 [JAVA] IBM JDK download 경로 [레벨:7]권오수 2008-06-26 14939
2 [JAVA] 자바 환경에서 메모리 확인하는 jsp 페이지 file [레벨:7]권오수 2008-06-26 12122
1 [JAVA] JNI Compile 시스템별 컴파일 방법 [레벨:7]권오수 2008-06-26 13140