java关于ldap删除含有子节点的节点问题

 1 import java.util.Enumeration;
 2 import java.util.Hashtable;
 3 import javax.naming.*;
 4 import javax.naming.directory.*;
 5 public class OperateLdap{
 6 
 7     DirContext dc = null;
 8     String loginAcc = "";
 9     String password = "1234";
10     String root = "dc=hollow,dc=com";
11     SearchControls sc = new SearchControls();
12     
13     public OperateLdap(){
14         
15     }
16     
17     //连接openLdap 函数
18 
19 public void connOpenLdap(){ 20 Hashtable<String, String> ht = new Hashtable<String, String>(); 21 ht.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 22 ht.put(Context.PROVIDER_URL, "ldap://192.168.1.140:389/dc=hollow,dc=com");//服务器地址,在自己机子上就写本地ip地址 23 ht.put(Context.SECURITY_AUTHENTICATION, "simple");//安全验证方式:"simple" "none", "simple", "strong" 24 ht.put(Context.SECURITY_PRINCIPAL, root);//登陆用户dn 25 ht.put(Context.SECURITY_CREDENTIALS, password);//登陆密码 26 try { 27 dc = new InitialDirContext(ht);//初始化上下文 28 System.out.println("连接成功"); 29 } catch (NamingException e) { 30 // TODO Auto-generated catch block 31 e.printStackTrace(); 32 } 33 } 34 //删除节点 35
36 public void del(String id) { 37 System.out.println("来自删除方法del(String id)的消息:您要删除的条目为" + id); 38 try { 39 dc.destroySubcontext(id);//销毁指定上下文,并将它从名称空间中移除 40
41 } catch (NamingException e) { 42
43 e.printStackTrace(); 44 } 45 46 } 47   /* 48 * 删除含有子节点的节点,需先删除其子节点,因此用到递归 49 */ 50 public void delTree(String node){ 51 NamingEnumeration<?> ne = null; 52 try { 53 ne = dc.listBindings(node);//枚举绑定在指定上下文中的名称,以及绑定到这些名称的对象 54 while(ne.hasMore()){ 55 Binding bing = (Binding)ne.next(); 56 String newNode = bing.getName() + "," + node; 57 System.out.println(node + "的子节点" + newNode); 58 delTree(newNode);//递归 59 } 60 } catch (NamingException e) { 61 // TODO Auto-generated catch block 62 e.printStackTrace(); 63 } 64 del(node);//删除无子节点的节点 65 } 66 }

最近在学习ldap,对于java操纵ldap不太熟悉,写得不好,应该有很多漏洞,不过没关系,自己慢慢摸索,加油吧!

转载于:https://www.cnblogs.com/namedhollo/archive/2013/03/22/2975512.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值