2017-07-30 33 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ファイルを実行
** 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 

が、1つのオブジェクトに対して8つの削除コマンドを送信する私は、削除したい:私は、次のコマンド(各LDIFファイルには1つのコマンドが含まれている)とのLDIFファイルを持っています...あまりエレガントではありません。私はこれを行うためのより良い、よりエレガントな方法を探しています。私はそれの下にエントリを持つエントリを削除できないことを知っていますが、削除プロセスをより短く、よりエレガントにする方法を見つけることを望んでいます。

私は質問how to delete all entries ldap javaを見ましたが、私たちが使用しないSpring frameworkが含まれているので、私の問題には適用されません。プロジェクトにSpring frameworkを統合する計画がありますが、になると、の後にこれを顧客に提供する必要があります。

ツリーからエンティティを再帰的に削除する方法はありますか?たとえば、削除したいオブジェクトのDN(ツリーの一番上)を送信し、何らかの理由でLDAPがそのオブジェクトとその下のすべてのエントリを自動的に削除します。

私は現在、ldapdeleteのスイッチを見て、そのうちのどれかが私に役立つかどうかを確認しています。

私は何か助けていただきありがとうございます。

+0

LDAPサーバーでサポートされている場合は、[サブツリーの削除]コントロールを使用できます。 – EJP

+0

私はその答えを知らない。お客様のエンジニアリングチームに質問を送ります。また、私は "サブツリー"コントロールを持っていません。私はLDIFを送信しています。これは顧客のLDAPサーバー上で実行され、確認拒否応答が返されます。 JXplorerクライアントを使用して、顧客のサーバー上のデータを表示しています。 –

+0

'ldapdelete'はオプションの中にそれを持つべきです。これはあなたがリクエストに入れた魔法ですが、OpenLDAPサーバーの場合はオプションのオーバーレイが必要です。 – EJP

答えて

0

LDAPサーバーがTreeDelete拡張操作をサポートしていないため、解決策はありません。

関連する問題