LDAP的基本模型是建立在“条目”(Entry)的基础上。一个条目是一个或多个属性的集合,并且具有一个全局唯一的“可区分名称”。
我这里需要创建的部门和员工也都是条目,部门的全局唯一的可区分名称使用“ou=部门名”表示,员工则使用“cn=员工名”表示。下面是
需要注意的地方了, LDAP中,一个条目必须包含一个objectClass属性,且需要赋予至少一个值。每一个值将用作一条LDAP条目进行
数据存储的模板;模板中包含了一个条目必须被赋值的属性和可选的属性。我这里创建部门时,部门条目的objectclass属性需设置为
“organizationalUnit”,而且部门条目创建时还需要初始化两个属性,一个是“ou”,一个是“description”,这两个如果不设置会出错。这
个设置的限定应该是在scheme文件中规定的。
这里需要提一下在LDAP中有一个scheme的概念,在LDAP中,schema用来指定一个目录中所包含的对象(objects)的类型(objectClass),
以及每一个类型(objectClass)中必须提供的属性(Atrribute)和可选的属性。可将schema理解为面向对象程序设计中的类,通过类定义
一个具体的对象。LDIF中的数据条目可理解为是一个具体的对象,是通过schema来规划创建的。因此,schema是一个数据模型,用来决
定数据按什么方式存储,并定义存储在不同的条目(Entry)下的数据之间的关系。schema需要在主配置文件slapd.conf中指定,以用来决
定在目录中可以使用哪些objectClass。
下面是创建部门的代码:
BasicAttributes attrsbu = new BasicAttributes();
BasicAttri