diff --git a/gravitee-am-gateway/gravitee-am-gateway-handler/gravitee-am-gateway-handler-oidc/src/main/java/io/gravitee/am/gateway/handler/oidc/service/idtoken/impl/IDTokenServiceImpl.java b/gravitee-am-gateway/gravitee-am-gateway-handler/gravitee-am-gateway-handler-oidc/src/main/java/io/gravitee/am/gateway/handler/oidc/service/idtoken/impl/IDTokenServiceImpl.java index 7efa326a71..be9d88cdac 100644 --- a/gravitee-am-gateway/gravitee-am-gateway-handler/gravitee-am-gateway-handler-oidc/src/main/java/io/gravitee/am/gateway/handler/oidc/service/idtoken/impl/IDTokenServiceImpl.java +++ b/gravitee-am-gateway/gravitee-am-gateway-handler/gravitee-am-gateway-handler-oidc/src/main/java/io/gravitee/am/gateway/handler/oidc/service/idtoken/impl/IDTokenServiceImpl.java @@ -87,6 +87,11 @@ public class IDTokenServiceImpl implements IDTokenService { @Autowired private UserService userService; + /** + * Set of claims to exclude from the IDToken + */ + private static final Set EXCLUDED_CLAIMS = Set.of(ConstantKeys.OIDC_PROVIDER_ID_TOKEN_KEY); + @Override public Single create(OAuth2Request oAuth2Request, Client client, User user, ExecutionContext executionContext) { // use or create execution context @@ -193,7 +198,11 @@ private IDToken createIDTokenJWT(OAuth2Request oAuth2Request, Client client, Use // 3. If no claims requested, grab all user claims if (!requestForSpecificClaims) { - userClaims.forEach((k, v) -> idToken.addAdditionalClaim(k, v)); + userClaims.forEach((k, v) -> { + if (!EXCLUDED_CLAIMS.contains(k)) { + idToken.addAdditionalClaim(k, v); + } + }); } }