2017-07-30 214 views
0

實體我在LDAP我怎樣才能刪除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 ([email protected]$MobileDomain) 
| | | | + HSS-User (HSS-PrivateUserId=$Imsi) 
| | | | + HSS-Msisdn (HSS-Msisdn=$Msisdn) 
| | | | + HSS-SubscriberServiceProfile 
| | | | + HSS-PublicIdentificationData (sip:[email protected]$MobileDomain) 
| | | | + HSS-PublicIdentificationData (sip:\[email protected]$MobileDomain) 
| | | | + HSS-PublicIdentificationData (tel:\+$Msisdn) 

我需要刪除HSS-認購和下所有實體下面的樹。我用下面的命令LDIF文件(每個LDIF文件中包含1個命令):

** PublicIdentificationDataTel.ldif ** 
dn: HSS-PublicIdValue=tel:\+$Msisdn, 
    [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=HssNodeName 
changeType: delete 

** PublicIdentificationDataSip2.ldif ** 
dn: HSS-PublicIdValue=sip:\[email protected]$MobileDomain, 
    [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=HssNodeName 
changeType: delete 

** PublicIdentificationDataSip1.ldif ** 
dn: HSS-PublicIdValue=sip:[email protected]$MobileDomain, 
    [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=HssNodeName 

** SubscriberServiceProfile.ldif ** 
dn: HSS-SubscriberServiceProfileId=SubServProf$Msisdn, 
    HSS-SubscriberID= [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=HssNodeName 
changetype: delete 

** MsIsdn.ldif ** 
dn: HSS-Msisdn=$Msisdn, 
    [email protected]$MobileDomain, 
    [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=HssNodeName 
changeType: delete 

** HssUser.ldif ** 
dn: HSS-PrivateUserID=$Imsi, 
    [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=HssNodeName 
changeType: delete 

** HssSubscriber.ldif ** 
dn: [email protected]$MobileDomain, 
    HSS-SubscriberContainerName=HSS-Subscribers, 
    applicationName=HSS,nodeName=$NODENAME 
changeType: delete 

跑在我寫了他們正常工作秩序以上LDIF文件,但發送8刪除命令1個對象我要刪除...它不是很優雅。我正在尋找更好更優雅的方式來做到這一點。我知道我無法刪除包含條目的條目,但我希望找到一種方法使我的刪除過程更短,更優雅。

我看到問題how to delete all entries ldap java,那裏的解決方案並不適用於我的問題,因爲它涉及我們不使用的Spring framework。我們有計劃將Spring framework集成到我們的項目中,但將在之後我們需要爲我們的客戶提供此項服務。

有沒有辦法從樹中遞歸刪除一個實體?例如,我將發送要刪除的對象的DN(樹的頂部),並以某種方式LDAP將自動刪除它及其下的所有條目。

我目前正在看ldapdelete開關,看看他們中的任何人能否幫助我。

我會很感激任何幫助。

+0

如果您的LDAP服務器支持,您可以使用刪除子樹控制。 – EJP

+0

我不知道那個答案。我向客戶的工程團隊發送問題。另外,我沒有「子樹」控件。我發送一個LDIF,它在客戶的LDAP服務器上運行,並得到一個Confirm-Reject響應。我正在使用JXplorer客戶端查看客戶服務器上的數據。 –

+0

'ldapdelete'應該有選項。這是您投入請求的一塊魔力,但例如在OpenLDAP服務器的情況下,它需要存在可選覆蓋。 – EJP

回答

0

沒有解決方案,因爲LDAP服務器不支持TreeDelete擴展操作。