2016-04-12 35 views
1

Yay destek kullandım. Grubumdan rol almaya üye oluyorum. Şema aşağıdaki gibidir.ldap grup nesnesine göre nesne bulun

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 

Üyeleri cn = key2 olan rolleri bulmak istiyorum.

Benim sorgu ben eksik

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

? Ldaptemplate kullanarak herhangi bir alternatif var olduğunu. özellik değerleri üzerinde

cevap

1

bir LDAP arama filtreleri, bu nedenle arama üyesi özniteliği üzerinde eşleşmesi gerekir:

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

dikkat edin, eğer sen aradığınız kullanıcının tam DN sağlamanız gerekmektedir yukarıdaki durumda için. Filtre, belirtilen DN'nin üye olarak mevcut olduğu tüm groupOfName girişleriyle eşleşecektir.

Ayrıca, kurallardan kaçmak zor olduğundan, ayırt edici ad dizelerini el ile oluşturmamanız gerektiğini lütfen unutmayın. Üye DN değerinin üye özellik eşleşmesine dahil edilmesini sağlamak için LdapNameBuilder'a bakın.