From 3addeb132c279a360c1fca27470d3cf2361aea21 Mon Sep 17 00:00:00 2001 From: Michail Chatzipanagiotou Date: Sun, 31 Aug 2025 14:19:44 +0200 Subject: [PATCH] feature: remove email requirement from identity provider on env value true --- .../discord/DiscordIdentityProvider.java | 35 +++++++++++++------ .../DiscordIdentityProviderConfig.java | 6 ++-- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java b/src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java index b14fc3e..55769da 100755 --- a/src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java +++ b/src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java @@ -46,6 +46,7 @@ public class DiscordIdentityProvider extends AbstractOAuth2IdentityProvider allowedGuilds = getConfig().getAllowedGuildsAsSet(); + final JsonNode guilds = SimpleHttp.doGet(GROUP_URL, session).header("Authorization", "Bearer " + accessToken).asJson(); + final Set allowedGuilds = getConfig().getAllowedGuildsAsSet(); + for (JsonNode guild : guilds) { String guildId = getJsonProperty(guild, "id"); if (allowedGuilds.contains(guildId)) { return true; } } + return false; } catch (Exception e) { throw new IdentityBrokerException("Could not obtain guilds the current user is a member of from discord.", e); @@ -121,10 +126,18 @@ public class DiscordIdentityProvider extends AbstractOAuth2IdentityProvider getAllowedGuildsAsSet() { if (hasAllowedGuilds()) { - String guilds = getConfig().get("allowedGuilds"); - return Arrays.stream(guilds.split(",")).map(x -> x.trim()).collect(Collectors.toSet()); + final String guilds = getConfig().get("allowedGuilds"); + return Arrays.stream(guilds.split(",")).map(String::trim).collect(Collectors.toSet()); } return Collections.emptySet(); }