如何在 LDAP 中搜索组(groupOfNames),作为输入,我只能传递组名。创建的组的名称是唯一的。我只使用 LDAP eclipse 插件来搜索组层次结构。我希望 JAVA 代码通过它的 cn(通用名称)搜索组,这将是唯一的。
例如,
void searchGroupName("sampleGroup")
{
context.search(String groupRoot,String sampleGroup,SearchControls ctls);
}
如何在 LDAP 中搜索组(groupOfNames),作为输入,我只能传递组名。创建的组的名称是唯一的。我只使用 LDAP eclipse 插件来搜索组层次结构。我希望 JAVA 代码通过它的 cn(通用名称)搜索组,这将是唯一的。
例如,
void searchGroupName("sampleGroup")
{
context.search(String groupRoot,String sampleGroup,SearchControls ctls);
}
我假设您将使用 Spring LDAP,因为这个问题被标记了。使用 Spring LDAP 2.x,您可以执行以下操作:
Group group = ldapTemplate.searchForObject(
query().base(groupRoot).where("cn").is(sampleGroup),
new AbstractContextMapper<Group>({
protected Group doMapFromContext(DirContextOperations ctx) {
// Build Group instance here using ctx.getStringAttribute()
return Group;
}
});
或者,如果您正在使用 Spring LDAP ODM 并且已经适当地注释了您的 Group 域类(有关详细信息,请参阅参考文档):
Group group = ldapTemplate.findOne(
query().where("cn").is(sampleGroup),
Group.class);
有关使用用户和组的完整应用程序示例,请查看Spring LDAP 用户管理示例。