两天前我刚得到这个要求,我第一次使用 LDAP(openDS)。事实上,我的研发时间非常有限。我已经尽可能多地阅读了 openDS 的开发人员指南和 SDK Api。
基本上我有一个非常简单的要求。我将获得一个“用户 ID ”,并使用它来验证该用户是否属于 LDAP 中的任何可用组(由我定义)。
我设法做到了这个代码片段:
public void getGroup(String userId) {
Connection connection = new LDAPConnection().getConnection();
try {
// No explicit bind yet so we remain anonymous for now.
SearchResultEntry entry;
entry = connection.searchSingleEntry("ou=Groups,dc=example,dc=com",
SearchScope.WHOLE_SUBTREE,
"(uniqueMember=" + "uid="+userId+", ou=People, dc=example,dc=com" + ")",
"cn");
String cn = entry.getAttribute("cn").firstValueAsString();
System.out.println("Hello, " + cn + "!");
} catch (ErrorResultException e) {
e.getMessage();
} finally {
closeConnection(connection);
}
}
现在,如果我收到搜索结果,则该用户属于一个组,否则不属于该组。现在我不确定这是实现这一目标的方法。我也看起来像“isMemberOf”,但我不确定 API 是否提供了这种方法或者是别的什么。
任何帮助深表感谢。谢谢。