我在LDAP中有以下树
Legend
$Msisdn = 13217654321 // 11 digits phone number: (contry)+(area)+(number)
$Imsi = 999888000007777 // standard 15 digits IMSI number
$MobileDomain = ims.mnc888.mcc999.3gppnetwork.org
+ HssNodeName
| + HSS
| | + HSS-Subscribers
| | | + HSS-Subscriber (HSS-SubscriberID=$Msisdn@$MobileDomain)
| | | | + HSS-User (HSS-PrivateUserId=$Imsi)
| | | | + HSS-Msisdn (HSS-Msisdn=$Msisdn)
| | | | + HSS-SubscriberServiceProfile
| | | | + HSS-PublicIdentificationData (sip:$Imsi@$MobileDomain)
| | | | + HSS-PublicIdentificationData (sip:\+$Msisdn@$MobileDomain)
| | | | + HSS-PublicIdentificationData (tel:\+$Msisdn)
我需要删除HSS-Subscriber及其下的所有实体。我有以下命令的LDIF文件(每个LDIF文件包含1个命令):
** PublicIdentificationDataTel.ldif **
dn: HSS-PublicIdValue=tel:\+$Msisdn,
HSS-SubscriberID=$Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=HssNodeName
changeType: delete
** PublicIdentificationDataSip2.ldif **
dn: HSS-PublicIdValue=sip:\+$Msisdn@$MobileDomain,
HSS-SubscriberID=$Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=HssNodeName
changeType: delete
** PublicIdentificationDataSip1.ldif **
dn: HSS-PublicIdValue=sip:$Imsi@$MobileDomain,
HSS-SubscriberID=$Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=HssNodeName
** SubscriberServiceProfile.ldif **
dn: HSS-SubscriberServiceProfileId=SubServProf$Msisdn,
HSS-SubscriberID= $Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=HssNodeName
changetype: delete
** MsIsdn.ldif **
dn: HSS-Msisdn=$Msisdn,
HSS-PrivateUserID=$Imsi@$MobileDomain,
HSS-SubscriberID=$Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=HssNodeName
changeType: delete
** HssUser.ldif **
dn: HSS-PrivateUserID=$Imsi,
HSS-SubscriberId=$Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=HssNodeName
changeType: delete
** HssSubscriber.ldif **
dn: HSS-SubscriberId=$Msisdn@$MobileDomain,
HSS-SubscriberContainerName=HSS-Subscribers,
applicationName=HSS,nodeName=$NODENAME
changeType: delete
按照我编写的顺序运行上面的LDIF文件可以正常工作,但是为我要删除的1个对象发送8个删除命令...它不是很优雅。我正在寻找一种更好,更优雅的方式来做到这一点。我知道我无法删除包含条目的条目,但我希望找到一种方法让我的删除过程更短,更优雅。
我看到问题how to delete all entries ldap java,解决方案不适用于我的问题,因为它涉及我们不使用的Spring framework
。有一个计划将Spring framework
整合到我们的项目中,但是 AFTER 我们需要为我们的客户提供此服务。
是否有办法以递归方式从树中删除实体?例如,我将发送我想要删除的对象的DN(树的顶部),并且LDAP会以某种方式自动删除它以及它下面的所有条目。
我目前正在查看ldapdelete
个问题,看看是否有任何一个可以帮我解决这个问题。
我将不胜感激。
答案 0 :(得分:1)
没有解决方案,因为LDAP服务器不支持TreeDelete扩展操作。