엔트리를 추가하는 부분인거 같은데요... 먼저
public static String MGR_DN = "cn=admin,o=hit.com";
아래 사용자가 쓸 수 있는 권한이 있는지 .....
그리고 추가할 엔트리가 속해 있는 ObjectClass가 포함되어 있는지
Objectclass의 requied값을 전부 넣었는지
경험상 이 세가지 중에 하나 일겁니다.
>>신응섭 님께서 쓰시길<<
:: 안녕하세요.
:: 제가 회사에서 LDAP과 JNDI를 이용한 Pilot중인데요,
:: 이곳의 글들이 많은 도움이 됩니다. 정말 여러고수님들 감사드리구요.
:: LDAP서버에 Entry를 추가하는 서블릿을 짜던중 박근오님이 자료실에올리신 소스를 참고했습니다.감사
:: 드리구요.
:: 컴파일시 에러는 안나나 try이하에서 에러익셉션으로 자꾸 빠지는 군요.
:: 한참 고민해보고 이짓저짓다해봐도 잘모르겠어서 질문드립니다.
::
:: 소스는 아래와 같은데, 무엇을 수정해야 할지..
:: 테스트 환경은 Sun3500, Netscape Directory 4.5입니다.JDK1.3, JNDI1.2.1이구요.
:: __________________________________________________________________________-
:: import javax.naming.*;
:: import javax.naming.Context;
:: import javax.naming.directory.*;
:: import javax.naming.NamingException;
:: import java.util.*;
:: import java.io.*;
:: import javax.servlet.*;
:: import javax.servlet.http.*;
:: import java.awt.*;
::
:: public class AddEntry extends HttpServlet {
::
:: public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
:: public static String MY_HOST = "ldap://localhost:389";
:: public static String MGR_DN = "cn=admin,o=hit.com";
:: public static String MGR_PW = "aro1234";
:: public static String SEARCH_BASE = "uid=*,o=hit.com";
::
:: public void doPost(HttpServletRequest req, HttpServletResponse res)
:: throws ServletException, IOException {
:: String UID = req.getParameter("ID");
:: String NAME = req.getParameter("NAME");
:: String BUSEO = req.getParameter("buseo");
:: String GRADE = req.getParameter("grade");
:: String PASS = req.getParameter("PASS");
:: String PASS_CONF = req.getParameter("PASS_conf");
:: String EMAIL = req.getParameter("email");
:: String PHONE = req.getParameter("phone");
:: String FAX = req.getParameter("FAX");
:: String Dn = new String("uid="+UID+", ou=People");
::
:: PrintWriter out = res.getWriter();
::
:: res.setContentType("text/html; charset=ks_c_5601-1987");
:: //new PrintWriter(new OutputStreamWriter(res.getOutputStream(), "KSC5601"), true);
::
:: out.println("<HTML>");
:: out.println("<HEAD><TITLE>JNDI를 이용한 사용자 추가</TITLE></HEAD>");
::
:: out.println("<BODY>");
:: out.println("사용자 추가");
:: out.println("사번 : "+UID);
:: try{
:: Hashtable env = new Hashtable();
:: env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
:: env.put(Context.PROVIDER_URL, MY_HOST);
:: //env.put(Context.SECURITY_AUTHENTICATION, "simple");
:: env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
:: env.put(Context.SECURITY_CREDENTIALS, MGR_PW);
::
:: DirContext ctx = new InitialDirContext(env);
:: Attributes attrs = new BasicAttributes(true);
:: Attribute objClass = new BasicAttribute("objectclass");
:: objClass.add("person");
:: Attribute UserID = new BasicAttribute("uid");
:: UserID.add(UID);
:: Attribute gradeName = new BasicAttribute("sn");
:: gradeName.add(GRADE);
:: Attribute commonName = new BasicAttribute("cn");
:: commonName.add(NAME);
:: Attribute BuseoName = new BasicAttribute("givenname");
:: BuseoName.add(BUSEO);
:: Attribute password = new BasicAttribute("userpassword");
:: password.add(PASS);
:: Attribute Phone = new BasicAttribute("telephonenumber");
:: Phone.add(PHONE);
:: Attribute Email = new BasicAttribute("mail");
:: Email.add(EMAIL);
:: Attribute fax = new BasicAttribute("facimiletelephonenumber");
:: fax.add(FAX);
::
:: attrs.put(objClass);
:: attrs.put(UserID);
:: attrs.put(gradeName);
:: attrs.put(commonName);
:: attrs.put(BuseoName);
:: attrs.put(password);
:: attrs.put(Phone);
:: attrs.put(Email);
:: attrs.put(fax);
::
:: Context result = ctx.createSubcontext(Dn, attrs);
:: out.println(attrs.get("cn").get()+" 님 등록 완료되었습니다. " );
:: out.println(attrs.toString());
::
:: out.println("부서 : " + attrs.get("givenname").get());
:: out.println(attrs.toString());
:: out.println("직위 : " + attrs.get("sn").get());
:: out.println(attrs.toString());
:: out.println("사번 : " + attrs.get("uid").get());
:: out.println(attrs.toString());
:: out.println("성명 : " + attrs.get("cn").get());
:: out.println(attrs.toString());
::
:: }catch (Exception ex) {
:: out.println("Add Operation Error !");
:: }
:: out.println("<p>");
:: out.println("</BODY></HTML>");
:: out.flush();
::
:: }
::
::
:: }
::
:: _______________________________________________________________________________부탁드립니다.
::
::
|