Spring LdapTemplate按Object属性搜索

时间:2013-09-11 11:24:49

标签: java spring ldap

我想通过匹配对象内部名为“Id”的属性在LDAP中找到一个元素。

LDAP模式如下

> dc=myCompany,dc=com
>    ou=apiRoles     
>       cn=RoleAdmin
>            objectClass : apiRole
>            RoleCode    : 1
>            user (list of them with values)

现在我能够执行此查询,它带来了所有apiRole类,

List<LdapRole> ldapRoles = ( List<LdapRole>)ldapTemplate.search("ou=apiRoles", "(objectClass=apiRole)", new LdapRole());

我是kida的新手,所以从我的理解,我看看树的基础是“ou = apiRoles”,然后按对象类过滤

现在我如何更改它以适合我想要的...哪个是通过RoleCode的值来查看。

谢谢

1 个答案:

答案 0 :(得分:0)

如果您将"(objectClass=apiRole)"替换为"(RoleCode=1)",我认为您应该能够查询它。

或者你可以建立一个过滤器。如果您使用的是Spring LDAP 1.3.2:

AndFilter filter = new AndFilter();
filter.and(new EqualsFilter('RoleCode', '1'));

然后,您将"(objectClass=apiRole)"替换为filter.encode()