Browse Source

refactor: hardcode avatar size to 256px and add TODO

pull/64/head
Kevin Paul 4 weeks ago
parent
commit
1168c31e5c
  1. 5
      src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java
  2. 4
      src/test/java/org/keycloak/social/discord/DiscordIdentityProviderTest.java

5
src/main/java/org/keycloak/social/discord/DiscordIdentityProvider.java

@ -47,7 +47,7 @@ public class DiscordIdentityProvider extends AbstractOAuth2IdentityProvider<Disc
public static final String TOKEN_URL = "https://discord.com/api/oauth2/token";
public static final String PROFILE_URL = "https://discord.com/api/users/@me";
public static final String GROUP_URL = "https://discord.com/api/users/@me/guilds";
public static final String USER_PICTURE_URL = "https://cdn.discordapp.com/avatars/%s/%s.%s";
public static final String USER_PICTURE_URL = "https://cdn.discordapp.com/avatars/%s/%s.%s?size=%s";
public static final String DEFAULT_SCOPE = "identify email";
public static final String GUILDS_SCOPE = "guilds";
@ -114,7 +114,8 @@ public class DiscordIdentityProvider extends AbstractOAuth2IdentityProvider<Disc
if (avatarHash.startsWith("a_")) {
extension = "gif";
}
String finalURL = String.format(USER_PICTURE_URL, user.getId(), avatarHash, extension);
// TODO Image size to be configured via provider config in the future
String finalURL = String.format(USER_PICTURE_URL, user.getId(), avatarHash, extension, "256");
user.setUserAttribute("picture", finalURL);
if (profile instanceof ObjectNode objectNodeProfile) {
objectNodeProfile.put("picture", finalURL);

4
src/test/java/org/keycloak/social/discord/DiscordIdentityProviderTest.java

@ -106,7 +106,7 @@ class DiscordIdentityProviderTest {
BrokeredIdentityContext user = provider.extractIdentityFromProfile(null, profile);
String expectedURL = "https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png";
String expectedURL = "https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png?size=256";
assertEquals(expectedURL, user.getUserAttribute("picture"));
}
@ -126,7 +126,7 @@ class DiscordIdentityProviderTest {
BrokeredIdentityContext user = provider.extractIdentityFromProfile(null, profile);
String expectedURL = "https://cdn.discordapp.com/avatars/80351110224678912/a_8342729096ea3675442027381ff50dfe.gif";
String expectedURL = "https://cdn.discordapp.com/avatars/80351110224678912/a_8342729096ea3675442027381ff50dfe.gif?size=256";
assertEquals(expectedURL, user.getUserAttribute("picture"));
}
Loading…
Cancel
Save