วันพฤหัสบดีที่ 11 มิถุนายน พ.ศ. 2552

เขียน Java ติดต่อกับ LDAP Server

เขียนโดย นรพล Naraphol (ยอด Yod) ที่ 17:17
การเรียกดูข้อมูลที่อยู่ใน LDAP Server ทำได้หลายวีิธีครับ ไม่ว่าจะเป็นด้วยโปรแกรมที่มีให้ใช้อยู่แล้ว หรือเขียนโปรแกรมติดต่อกับ Server เองก็ได้ แต่วันนี้ขอยกตัวอย่าง code ที่ใช้ติดต่อกับ LDAP server ด้วย Java ครับ

เริ่มด้วยดูข้อมูลตัวอย่างที่อยู่ใน Server จากโปรแกรมก่อนครับ


โปรแกรมแบ่งออกเป็น 2 ส่วนคือ ด้านซ้ายที่แสดงโครงสร้างข้อมูล และด้านขวาที่แสดง attribute ของ node ที่กำลังเลือก โดยในรูปแสดง attribute ของ UN : cn=yod,ou=users,ou=system หรือ cn=yod

ตัวอย่าง code ที่เขียนจะเป็นการเชื่อมต่อกับ server และแสดง attribute เหล่านี้ครับ

เริ่มจากส่วน import ก่อนครับ
import java.util.Hashtable;
import javax.naming.*;
import javax.naming.directory.*;
import javax.naming.ldap.*;
จากนั้นตามด้วย method ครับ
public static void getName() throws NamingException{

Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:10389/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
env.put(Context.SECURITY_CREDENTIALS, "secret");

InitialDirContext initNamingContext = new InitialDirContext(env);
System.out.println(initNamingContext.getAttributes("cn=yod,ou=users,ou=system"));
}
และเมื่อสั่ง run แล้วจะได้แบบนี้ครับ
{mail=mail: yod1498@yahoo.com, userpassword=userpassword: [B@1ffb8dc, uid=uid: yod, givenname=givenName: nara, objectclass=objectClass: person, organizationalPerson, inetOrgPerson, top, sn=sn: deechuay, cn=cn: yod}
เป็นงัยครับ code สั้นๆ นิดเดียว ทีนี้มาดูต่อครับว่าเราทำอะไรลงไป
  1. env.put(Context.PROVIDER_URL, "ldap://localhost:10389/"); เิริ่มจากการ connect ไปยัง LDAP server โดยกำหนด address และ port ของ server
  2. env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); กำหนด user ที่ต้องการ connect และต้องมีสิทธิดูข้อมูล
  3. env.put(Context.SECURITY_CREDENTIALS, "secret"); ตามด้วย password ของ user
  4. System.out.println(initNamingContext.getAttributes("cn=yod,ou=users,ou=system")); สุดท้ายก็สั่งพิมพ์ attribute ของ node ที่เราต้องการ

0 ความคิดเห็น on "เขียน Java ติดต่อกับ LDAP Server"

แสดงความคิดเห็น

 

naraphol.blogspot.com Copyright 2009 Reflection Designed by Ipiet Templates Image by Tadpole's Notez