77范文网 - 专业文章范例文档资料分享平台

LDAP使用手册(5)

来源:网络收集 时间:2019-05-18 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

4

5

6

九、 LDAP应用场景

使用JNDI操作目录服务

1. 准备连接目录服务器的相应配置文件(以ApacheDS为例)

apacheds.properties

java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

java.naming.provider.url=ldap://localhost:10389/dc=example,dc=com java.naming.security.authentication=simple

java.naming.security.principal=uid=liujz,dc=example,dc=com java.naming.security.credentials=123456

2. 创建测试类

public class LDAPTest{

private static DirContext ctx =null; private Properties ldapProps ;

public LDAPTest(Properties ldapProp){ This. ldapProp = ldapProp; }

public DirContext getDirContext(){ If(ctx=null){

ctx = new InitialDirContext(ldapProps); }

return ctx ;

}

//从LDAP服务器中查询符合条件的Entry

public void queryEntry(){

SearchControls sc = new SearchControls();

//用于设置查询范围 //有三种查询范围

SUBTREE_SCOPE:表示在以指定对象为根的子树中查找,可以返回多个元素 ONLEVEL_SCOPE:表示指定对象极其直接子实体 OBJECT_SCOPE:表示返回指定对象。

sc.setSearchScope(SearchControls.SUBTREE_SCOPE);

//该方法有单个参数,第一个参数是DN是一种相对的,因为根据配置文件,我们已经连接到根DN为dc=example,dc=com的目录树上,所以一下方法查询的Entry的DN为 ou=Account,dc=example,dc=com。第二个参数是过滤器,相当于SQL中的where子句。第三个参数为查询控制

String dn = “ou=Account”;

String filter = “ou=Account”;

NamingEnumeration result = getDirContext().search(dn,filter,sc);

While(result.hasMore()){

SearchResult entry = (SearchResult)result.next(); Attributes attrs = entry.getAttributes(); Attribute attr = attrs.get(“ou”); System.out.println(“ou=”+attr.get()); } }

//向LDAP服务器中添加Entry

Public void addEntry(){

//在ou=account,dc=example,dc=com节点下添加一个子节点。其RDN为

cn=liujianzhong Attributes attrs = new BasicAttributes(); attrs.put(“cn”,”liujianzhong”); attrs.put(“sn”,”liu”);

attrs.put(“userpassword”,”123456”);

BasicAttribute objectClassSet = new BasicAtrribute(“objectclass”);

objectClassSet.add(“top”): objectClassSet.add(“person”);

objectClassSet.add(“organizationalPerson”); objectClassSet.add(“inetOrgPerson”); attrs.put(objectClassSet);

ctx.createSubContext(“cn=liujianzhong,ou=Account”,attrs); }

//删除LDAP目录服务器中指定的Entry,如果该节点为叶子节点则直接删除,否则要先得到该节点下的所有叶子节点,然后从最底层的叶子节点删除,直到删除所有叶子节点为止

Public void delEntry(){

//删除叶子节点

String DN = “cn=liujianzhong,ou=Account” ; getDirContext().destroySubcontext(DN); //删除非叶子节点

String DN = “ou=Account,dc=example,dc=com” ; }

//删除非叶子节点

Public void delDN(String dn,DirContext ctx){ String root =\;

SearchControls sc = new SearchControls(); String filter = \;

sc.setSearchScope(SearchControls.ONELEVEL_SCOPE); NamingEnumeration results = ctx.search(dn, filter, sc); while(results.hasMore()){

SearchResult entry = (SearchResult)results.nextElement(); String name = entry.getNameInNamespace(); int rin = name.length()-root.length()-1; String rdn = name.substring(0, rin); delDn(rdn,ctx); }

ctx.destroySubcontext(dn);

}

//修改LDAP服务器中Entry的属性

public void modifyEntry(String dn,DirContext ctx) throws NamingException BasicAttribute attr = new BasicAttribute(\); attr.add(\);

//修改属性

ModificationItem[] mods = new ModificationItem[1];

mods[0] = new ModificationItem(LdapContext.REPLACE_ATTRIBUTE,attr); ctx.modifyAttributes(dn, mods);

//添加属性

BasicAttribute psw = new BasicAttribute(“userPassword”); Psw.add(“123456”);

ModificationItem[] add=new ModificationItem[1];

{ Add[0] = new ModificationItem(LdapContext.ADD_ATTRIBUTE,psw); ctx.modifyAttributes(dn, add);

//删除属性

BasicAttribute psw1= new BasicAttribute(“userPassword”); ModificationItem[] rem=new ModificationItem[1];

Rem[0] = new ModificationItem(LdapContext.ADD_ATTRIBUTE,psw1); ctx.modifyAttributes(dn, rem); }

} 3. 十、

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LDAP使用手册(5)在线全文阅读。

LDAP使用手册(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/630572.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: