如何删除ldap java的所有条目

时间:2014-06-02 19:54:56

标签: java spring ldap openldap spring-ldap

我有一个使用Spring LDAP和Java命名的Java应用程序。问题是当我删除包含条目的分支时。例如:

root
|
|----A
|    |
|    |--A1
|       |
|       |----A2
|            |
|            |---A3  
|
|
|-----B

当我尝试删除分支A时,向我发送以下异常:

[LDAP: error code 66 - subordinate objects must be deleted first]

请帮帮我!谢谢!

问候!

2 个答案:

答案 0 :(得分:3)

如果您使用的是Spring,那么您应该能够使用带有“递归”参数的LdapTemplate#unbind方法来实现此目的:

http://docs.spring.io/spring-ldap/docs/2.0.2.RELEASE/apidocs/org/springframework/ldap/core/LdapTemplate.html#unbind(javax.naming.Name,布尔值)

答案 1 :(得分:2)

除非LDAP服务器支持TreeDelete扩展操作或请求控制,无论它是什么,并且您可以找到客户端代码的Java实现,您将必须遍历子树并从下到上删除条目。