From f6a736ea6f5d6436765b76e92a1462e864a86557 Mon Sep 17 00:00:00 2001 From: Pierce Lopez Date: Sun, 25 Nov 2018 22:12:43 -0500 Subject: [PATCH] Google provider: limit to 10 pages of groups requests --- providers/google.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/providers/google.go b/providers/google.go index 9d25c4e47..4750bb939 100644 --- a/providers/google.go +++ b/providers/google.go @@ -180,7 +180,8 @@ func getAdminService(adminEmail string, credentialsReader io.Reader) *admin.Serv func userInGroup(service *admin.Service, groups []string, email string) bool { pageToken := "" - for { + // limit to 10 pages/requests + for i := 0; i < 10; i++ { req := service.Groups.List().UserKey(email) if pageToken != "" { req.PageToken(pageToken) @@ -204,6 +205,8 @@ func userInGroup(service *admin.Service, groups []string, email string) bool { } pageToken = resp.NextPageToken } + log.Printf("WARNING: %s has more than 10 pages of groups", email) + return false } // ValidateGroup validates that the provided email exists in the configured Google