Ich bin ein Einsteiger in LDAP und habe in den letzten Tagen gelernt, wie man LDAP-Abfragen macht. ich verwendet dieses Fragment des Codes, um die Mitgliedschaft einer Person in einer Gruppe zu finden.
SearchControls srch = new SearchControls();
srch.setSearchScope(SearchControls.SUBTREE_SCOPE);
String search_start = "CN=somegroup@myworld.com,OU=Managed Groups,OU=Accounts,DC=americas,DC=myworld,DC=com";
String[] attrIDs = {"cn"};
srch.setReturningAttributes(attrIDs);
String search_target = "(member=CN=django@myworld.com,OU=US,OU=Users,OU=Accounts,DC=americas,DC=myworld,DC=com)";
NamingEnumeration answer = cntxt.search( search_start, search_target,srch );
boolean isInGroup = false;
while(answer.hasMore()) {
SearchResult rslt = (SearchResult)answer.next();
Attributes attrs = rslt.getAttributes();
NamingEnumeration<String> all = attrs.getIDs();
isInGroup = true;
break;
}
Meine Aufgabe ist es nun auch herauszufinden, ob die Person einer Organisation auf oberster Ebene angehört. Ich habe keine Ideen, um herauszufinden, welche Art von Abfrage ich in einem solchen Fall verwenden kann. Kann jemand dazu einen Rat geben?
Grüße, Koya
Antworten:
0 für die Antwort № 1Angenommen, Ihre oberste Organisationseinheit lautet: OU=Accounts,DC=americas,DC=myworld,DC=com
Könnten Sie nicht einfach Folgendes ändern, um das zu erreichen, was Sie brauchen?
// ...
String search_start = "OU=Accounts,DC=americas,DC=myworld,DC=com";
// ...
String search_target = "(member=CN=django@myworld.com,OU=Accounts,DC=americas,DC=myworld,DC=com)";
// ...