diff --git a/src/main/java/br/com/luizcarlosvianamelo/keycloak/broker/oidc/mappers/ClaimToGroupMapper.java b/src/main/java/br/com/luizcarlosvianamelo/keycloak/broker/oidc/mappers/ClaimToGroupMapper.java index 86a042a..dad983d 100644 --- a/src/main/java/br/com/luizcarlosvianamelo/keycloak/broker/oidc/mappers/ClaimToGroupMapper.java +++ b/src/main/java/br/com/luizcarlosvianamelo/keycloak/broker/oidc/mappers/ClaimToGroupMapper.java @@ -1,9 +1,12 @@ package br.com.luizcarlosvianamelo.keycloak.broker.oidc.mappers; import org.jboss.logging.Logger; +import com.fasterxml.jackson.databind.JsonNode; import org.keycloak.broker.oidc.KeycloakOIDCIdentityProviderFactory; import org.keycloak.broker.oidc.OIDCIdentityProviderFactory; +import org.keycloak.broker.oidc.OIDCIdentityProvider; import org.keycloak.broker.oidc.mappers.AbstractClaimMapper; +import org.keycloak.broker.oidc.mappers.AbstractJsonUserAttributeMapper; import org.keycloak.broker.provider.BrokeredIdentityContext; import org.keycloak.models.*; import org.keycloak.provider.ProviderConfigProperty; @@ -120,6 +123,11 @@ public class ClaimToGroupMapper extends AbstractClaimMapper { this.syncGroups(realm, user, mapperModel, context); } + public static Object getClaimValue(BrokeredIdentityContext context, String claim) { + JsonNode profileJsonNode = (JsonNode) context.getContextData().get(OIDCIdentityProvider.USER_INFO); + return AbstractJsonUserAttributeMapper.getJsonValue(profileJsonNode, claim); + } + private void syncGroups(RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context) { // check configurations