ldap学习文档经典

冠:

dn:cn=zhujian_jiluming,ou=biao_ming,dc=shujuku_ming sn 真实名称

cn 常用名称 也可是具体哪个管理员或用户 ou 部门 也可是管理员或用户 o 公司 c 国家 dc 域名

数据类型主要是字符型,为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等

1、完整DN包括:

基准DN:dc=..,dc=..,dc=..,等等

相对路径(ou):可以是多层文件夹,例如ou=..,ou=..,ou=..,等等 区别名(cn或uid):相当于记录的名字

2、条目:相当于记录,而且每个条目必须属于某个或多个对象类 OpenDS中左侧的属性大部分都是来自于左侧的所属的对象类 3、如下是LDAP记录的详细信息 dn:cn=stan,ou=linux,ou=computer,dc=school,dc=org 此处cn是记录的名字,与下面的cn不同 objectClass:organizationalPerson 这个就是所属的对象类 cn:stan cn是属性,此cn与下面的cn是同一个属性,只不过包含多个值吧了,方便查找 cn:小刀 cn是属性,这些属性大部分来自于所属的对象类 sn:小刀 sn是属性 description:agoodboy

(以上是一条记录的信息,如果把他保存成LDIF文件,可以导入到LDAP数据库中) 4、若使用系统提供的对象类,则必须遵守该对象类对包含的属性所做的限制,例如,你可以用哪些属性,哪些属性不能为空,哪些属性最多只能有一个值等,例如,你选择了“objectClass:organizationalPerson”,虽然这个类中没有“sex”这个属性,不过你完全可以用一个“空闲”的属性来顶替。

若使用自己定义的对象类,则没有上面的限制。

LDAP 连接池的最小尺寸:缺省值为 1。

OpenDS在刚开机时显示

LDAP 连接池的最大尺寸:缺省值为 10。

JAVA_基本LDAP操作

www.educity.cn 发布者:a1b2c3li 来源:网络转载 发布日期:2013年11月01日 文章评论 发表文章

一、简介

Lightweight Directory Access Protocol (LDAP),轻型目录访问协议是一个访问在线目录服务的协议。下面的例子中简单介绍在java中队ldap的增删该查功能。目录结构为: CD=CAS,DC=MYDC --cn=users ----uid=zhangsan 二、示例

1、通过LdapContext连接ldap [java] /** * 连接LDAP */

@SuppressWarnings({ \)

public LdapContext connetLDAP() throws NamingException { // 连接Ldap需要的信息

String ldapFactory = \ String ldapUrl = \ String ldapAccount = \用户名 String ldapPwd = \密码 Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, ldapFactory); // LDAP server

env.put(Context.PROVIDER_URL, ldapUrl);

env.put(Context.SECURITY_AUTHENTICATION, \); env.put(Context.SECURITY_PRINCIPAL, ldapAccount); env.put(Context.SECURITY_CREDENTIALS, ldapPwd); env.put(\);

LdapContext ctxTDS = new InitialLdapContext(env, null); return ctxTDS; }

2、增加用户zhangsan [java] // 添加

public void testAdd() throws Exception { LdapContext ctx = connetLDAP();

Attributes attrs = new BasicAttributes(true);

Attribute objclass = new BasicAttribute(\); // 添加ObjectClass

String[] attrObjectClassPerson = { \\

Arrays.sort(attrObjectClassPerson); for (String ocp : attrObjectClassPerson) { objclass.add(ocp); }

attrs.put(objclass); String uid = \

String userDN = \ // 密码处理

// attrs.put(\); attrs.put(\); attrs.put(\);

attrs.put(\张三\); attrs.put(\); attrs.put(\);

attrs.put(\(\)); ctx.createSubcontext(userDN, attrs); }

3、删除用户zhangsan [java] //删除

public void testRemove() throws Exception { LdapContext ctx = connetLDAP(); String uid = \

String userDN = \ ctx.destroySubcontext(userDN); }

4、修改zhangsan的邮件地址 [java] //修改

public boolean testModify() throws Exception { boolean result = true;

LdapContext ctx = connetLDAP(); String uid = \

String userDN = \ Attributes attrs = new BasicAttributes(true); attrs.put(\);

ctx.modifyAttributes(userDN, DirContext.REPLACE_ATTRIBUTE, attrs);

return result; }

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4