2 日前にこの要件を取得したばかりで、初めて LDAP (openDS) を使用しています。現状では、研究開発に費やす時間は非常に限られています。開発者ガイドと openDS の SDK Api をできる限り調べました。
基本的に、私は非常に単純な要件を持っています。「 user-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 がそのような種類のメソッドを提供するのか、それとも別のものなのかはわかりません。
どんな助けでも大歓迎です。ありがとう。