最近のプロジェクトは、主に以下の手順で少しLDAP統合をLDAPログインを統合する必要があるので、簡単な研究:
まず、春のブートLDAPコンフィギュレーションファイルを設定
1.ポンポン設定ファイル:
<依存性> <依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータデータLDAP </たartifactId> </依存> <依存性> <のgroupId> org.springframework.boot < /のgroupId> <たartifactId>ばねブートスタータウェブ</たartifactId> </依存> <依存性> <のgroupId> org.projectlombok </のgroupId> <たartifactId>ロンボク</たartifactId> <オプション>真</オプション> </依存関係> <依存> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>ばねブートスタータ試験</たartifactId> <スコープ>テスト</スコープ> <除外> <除外> <のgroupId> org.junit.vintage </のgroupId> <たartifactId> JUnitのヴィンテージエンジン</たartifactId> </除外> </除外> </依存> <依存性> <のgroupId> COM。アリババ</ groupIdを> <たartifactId> fastjson </たartifactId> <バージョン> 1.2.62 </バージョン> </依存関係> </依存関係>
2.メタ情報LDAPの構成データ:
spring.ldap.urls = LDAP://127.0.0.1:389 spring.ldap.base = DC = DCテスト、DC = comの spring.ldap.username = CN = cnName、OU = ouName、DC = DCテスト、 dc = comの spring.ldap.password = ******
このような情報は、通常のコンフィギュレーションデータのクエリのldapすることができ
第二に、クエリの例:
ldapTemplate.lookup( "OU = ouName"、新しいAttributesMapper <オブジェクト>(){ @Override パブリックオブジェクトmapFromAttributes(属性を属性)のNamingException {スロー リターン属性; } })。
スタートは、クエリデータへのできていないお勧め:
org.springframework.ldap.NameNotFoundException:[LDAP:エラー・コード32 - 0000208D:NameErr:DSID-03100238、問題2001(NO_OBJECT)、データ0、ベストマッチ
あなたは下の二つの条件を照会する必要がある場合には、ouNameクエリから開始する必要がありますので、クエリの条件が間違っていることを、私はここに、このような私の側としてOU与えられた私の側からクエリのクエリを開始する必要がありますされた理由は、ouNameを与えています例えば、でクエリを入力してください
ldapTemplate.lookup( "OU = ouNameNext、OU = ouName"、新しいAttributesMapper <オブジェクト>(){ @Override パブリックオブジェクトmapFromAttributes(属性を属性)のNamingException {スロー リターン属性; } })。
構造が残されるべきであることを注意は右が高い当局で、下位部署です
第三に、最後の再帰クエリは、すべての部門との情報のメンバー:
@Test 公共ボイドgetAllTree(){ リスト<NameClassPairに> NAMELIST =新規のArrayList <>(); getCurrentDept( "OU = ouName"、ネームリスト) } プライベートボイドgetCurrentDept(文字列ベース、リスト<NameClassPairに>ネームリスト){ リスト<NameClassPairに> nameClassPairMapperList = ldapTemplate.list(ベース、新しいNameClassPairMapper(){ @Override 公共NameClassPairにmapFromNameClassPair(NameClassPairにNameClassPairには)のNamingException {スロー リターンNameClassPairには; } }) ; IF(nameClassPairMapperList.size()== 0){ リターン。 } (NameClassPairにNameClassPairに:nameClassPairMapperList)用{ //のSystem.out.println(nameClassPair.getNameInNamespace()0(サブストリング、nameClassPair.getNameInNamespace()のindexOf( "DC") - 1)); getCurrentDept(nameClassPair.getNameInNamespace()サブストリング(0、nameClassPair.getNameInNamespace()のindexOf( "DC") - 1)、ネームリスト); } nameList.addAll(nameClassPairMapperList)。 }