2016-04-12 9 views
1

私は春のldaptemplateを使用しています。私は私のグループから役割を外に出そうとしています。スキーマは次のとおりです。ldapグループメンバーでオブジェクトを検索

ou=roles,cn=admin 
member cn=key1,ou=Keys 
member cn=key2,ou=keys 

ou=roles,cn=user 
member cn=key3,ou=Keys 
member cn=key2,ou=keys 

メンバーcn = key2の役割を探したいとします。

私のクエリは、私が行方不明です

ldapTemplate.search(
      query().where("objectclass").is("groupOfNames").and("ou") 
         .is(roles).and("cn").is("key2"), PERSON_CONTEXT_MAPPER); 

は?ldaptemplateを使用して任意の代替です。

答えて

1

属性値のLDAP検索フィルタは、検索は、メンバー属性に一致する必要がありますので:

ldapTemplate.search(
    query(). 
     where("objectclass").is("groupOfNames"). 
     and("member").is("cn=key2,ou=keys"), PERSON_CONTEXT_MAPPER); 

注ユーザーの完全なDNを指定する必要があり、この場合のあなたが探していることをために。フィルターは、指定されたDNがメンバーとして存在するすべてのgroupOfName項目と一致します。

また、エスケープルールなどは扱いにくいため、識別名文字列を手動で作成しないでください。メンバー属性の一致に含めるユーザーDNを構築するには、LdapNameBuilderを参照してください。

関連する問題