-w [password] -h [ip address] -p [port] -s sub -b [service],o=[organization],c=[country]
'objectClass=*'
Username = ชื่อสำหรับทำการเข้า LDAP
Password = Password สำหรับเข้า LDAP
IP Address = IP สำหรับเข้า LDAP
Port = Port ของ LDAP
Service = ที่เราจะเข้าไปดูซึ่งวิธีเข้าไปดูนั้นจะเรียงจากชั้นในสุดไปถึงชั้นนอกสุด
Organization = Config LDAP
Country = Config LDAP
Example
ldapsearch -D cn=sample -w sample1 -h xxx.xxx.xxx.xxx -p xxx -s sub -b taoService=prepaid,serviceName=subProfile,msisdn=xxxxxxxxx, domainName=msisdn, o=xxx,c=TH 'objectClass=*'
ภาพโครงสร้างคร่าวๆ ของ LDAP
2. ถ้าเรียกแล้วข้อมูลขึ้นดังตัวอย่าง โดยที่ไม่มี Error ใดๆ ถือว่าเราสามารถที่จะเรียกได้
dn: msisdn=66xxxxxxxxx,domainName=msisdn,O=xxx,C=TH
msisdn: 66xxxxxxxxx
objectClass: subscriber
dn: serviceName=subProfile,msisdn=66xxxxxxxxx, domainName=msisdn, O=xxx ,C=TH
serviceName: subProfile
objectClass: subProfile
spImsi: 6223904495254321
spIccid: 00000000000000000000
spPricePlan:
spProvDate: 04012002
spAccountType: POS
spSubType:
spAccountCateg:
spSubStatus: A
spLanguage: english
spSKSegment:
spSKMobileType:
spRBTService: FALSE
spSupService: 000000000000000000000000
3. วิธีการเรียกด้วยจาวา จะทำดังนี้
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://IP:PORT/o=organization,c=country");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=username,o=organization,c=country");
env.put(Context.SECURITY_CREDENTIALS, password);
InitialDirContext initNamingContext = new InitialDirContext(env);
Attributes attrs = initNamingContext.getAttributes(service);
attrs.get(ชื่อที่ต้องการจะดึงขึ้นมา).get());
ใช้สำหรับ Config Timeout ให้กับ LDAP โดย put com.sun.jndi.ldap.connect.timeout ลงไปด้วย
เช่น env.put("com.sun.jndi.ldap.connect.timeout", "1000");
และสำหรับ Config Read Timeout โอยเพิ่ม put com.sun.jndi.ldap.read.timeout
1 comments:
เยี่ยมยอดครับ คุณเขียนบทความต่างๆได้ ตรงใจผมจริงๆ
แสดงความคิดเห็น