안녕하세요.
제가 회사에서 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();
}
}
_______________________________________________________________________________부탁드립니다.
|