use of com.microsoft.graph.requests.GroupCollectionPage in project azure-ad-plugin by jenkinsci.
the class AzureSecurityRealm method loadGroupByDisplayName.
@CheckForNull
private Group loadGroupByDisplayName(String groupName) {
LinkedList<Option> requestOptions = new LinkedList<>();
String encodedGroupName = groupName.replace("'", "''");
try {
encodedGroupName = URLEncoder.encode(encodedGroupName, StandardCharsets.UTF_8.name());
} catch (UnsupportedEncodingException e) {
LOGGER.log(Level.WARNING, "Failed to url encode query, group name was: " + groupName);
}
String query = String.format("\"displayName:%s\"", encodedGroupName);
requestOptions.add(new QueryOption("$search", query));
requestOptions.add(new HeaderOption("ConsistencyLevel", "eventual"));
GroupCollectionPage groupCollectionPage = getAzureClient().groups().buildRequest(requestOptions).select("id,displayName").get();
assert groupCollectionPage != null;
List<Group> currentPage = groupCollectionPage.getCurrentPage();
Group group = null;
if (currentPage.size() > 1) {
String groupIds = currentPage.stream().map(groupO -> groupO.id).collect(Collectors.joining(","));
throw new UsernameNotFoundException("Multiple matches found for group display name, " + "this must be unique: " + groupIds);
} else if (currentPage.size() == 1) {
group = currentPage.get(0);
}
return group;
}
use of com.microsoft.graph.requests.GroupCollectionPage in project msgraph-beta-sdk-java by microsoftgraph.
the class UserTests method castTest.
@Test
public void castTest() {
final GroupCollectionPage groups = graphServiceClient.groups().buildRequest().top(1).get();
final Group group = groups.getCurrentPage().get(0);
final UserCollectionPage usersPage = graphServiceClient.groups(group.id).membersAsUser().buildRequest().get();
assertNotNull(usersPage);
final DirectoryObjectCollectionWithReferencesPage testUserCollection = graphServiceClient.groups(group.id).members().buildRequest().top(1).get();
final DirectoryObject testUser = testUserCollection.getCurrentPage().get(0);
final User user = graphServiceClient.groups(group.id).membersAsUser(testUser.id).buildRequest().get();
assertNotNull(user);
}
use of com.microsoft.graph.requests.GroupCollectionPage in project azure-ad-plugin by jenkinsci.
the class AzureAdMatrixAuthorizationStrategy method searchAndGenerateCandidates.
static AutoCompletionCandidates searchAndGenerateCandidates(String prefix) {
final int maxCandidates = 20;
if (StringUtils.isEmpty(prefix)) {
return null;
}
SecurityRealm realm = Jenkins.get().getSecurityRealm();
if (!(realm instanceof AzureSecurityRealm)) {
return null;
}
GraphServiceClient<Request> graphClient = ((AzureSecurityRealm) realm).getAzureClient();
List<AzureObject> candidates = new ArrayList<>();
LOGGER.info("search users with prefix: " + prefix);
try {
UserCollectionPage users = lookupUsers(prefix, graphClient);
for (User user : users.getCurrentPage()) {
candidates.add(new AzureObject(user.id, user.displayName));
if (candidates.size() > maxCandidates) {
break;
}
}
if (candidates.size() < maxCandidates) {
GroupCollectionPage groupCollectionPage = lookupGroups(prefix, graphClient);
for (Group group : groupCollectionPage.getCurrentPage()) {
candidates.add(new AzureObject(group.id, group.displayName));
}
}
} catch (Exception e) {
LOGGER.log(Level.WARNING, "Do not have sufficient privileges to search related users or groups", e);
}
AutoCompletionCandidates c = new AutoCompletionCandidates();
for (AzureObject obj : candidates) {
String candidateText = ObjId2FullSidMap.generateFullSid(obj.getDisplayName(), obj.getObjectId());
c.add(candidateText);
}
return c;
}
use of com.microsoft.graph.requests.GroupCollectionPage in project msgraph-sdk-java by microsoftgraph.
the class UserTests method castTest.
@Test
public void castTest() {
final GroupCollectionPage groups = graphServiceClient.groups().buildRequest().top(1).get();
final Group group = groups.getCurrentPage().get(0);
final UserCollectionPage usersPage = graphServiceClient.groups(group.id).membersAsUser().buildRequest().get();
assertNotNull(usersPage);
final DirectoryObjectCollectionWithReferencesPage testUserCollection = graphServiceClient.groups(group.id).members().buildRequest().top(1).get();
final DirectoryObject testUser = testUserCollection.getCurrentPage().get(0);
final User user = graphServiceClient.groups(group.id).membersAsUser(testUser.id).buildRequest().get();
assertNotNull(user);
}
Aggregations