/** * Sets a custom remote claim to the user. * * @param claimUri Remote claim uri * @param claimValue Claim value */ private void setFederatedClaim(String claimUri, Object claimValue) { if (claimValue == null) { claimValue = StringUtils.EMPTY; } ClaimMapping newClaimMapping = ClaimMapping.build(claimUri, claimUri, null, false); authenticatedUser.getUserAttributes().put(newClaimMapping, String.valueOf(claimValue)); }
private String getLocalIdFromProvisioningEntity(ProvisioningEntity provisioningEntity) { Map<org.wso2.carbon.identity.application.common.model.ClaimMapping, List<String>> attributeMap = provisioningEntity.getAttributes(); if (!attributeMap.isEmpty()) { List<String> attributeValues = attributeMap.get(org.wso2.carbon.identity.application.common.model.ClaimMapping.build( IdentityProvisioningConstants.ID_CLAIM_URI, null, null, false)); if (attributeValues != null && !attributeValues.isEmpty()) { return attributeValues.get(0); } } return null; }
private String getLocalIdFromProvisioningEntity(ProvisioningEntity provisioningEntity) { Map<org.wso2.carbon.identity.application.common.model.ClaimMapping, List<String>> attributeMap = provisioningEntity.getAttributes(); if (!attributeMap.isEmpty()) { List<String> attributeValues = attributeMap.get(org.wso2.carbon.identity.application.common.model.ClaimMapping.build( IdentityProvisioningConstants.ID_CLAIM_URI, null, null, false)); if (attributeValues != null && !attributeValues.isEmpty()) { return attributeValues.get(0); } } return null; }
/** * Sets a custom remote claim to the user. * * @param claimUri Remote claim uri * @param claimValue Claim value */ private void setFederatedClaim(String claimUri, Object claimValue) { if (claimValue == null) { claimValue = StringUtils.EMPTY; } ClaimMapping newClaimMapping = ClaimMapping.build(claimUri, claimUri, null, false); authenticatedUser.getUserAttributes().put(newClaimMapping, String.valueOf(claimValue)); }
/** * @param attributeValue * @return */ public static Map<ClaimMapping, String> buildClaimMappings(Map<String, String> attributeValue) { Map<ClaimMapping, String> claimMap = new HashMap<ClaimMapping, String>(); for (Iterator<Entry<String, String>> iterator = attributeValue.entrySet().iterator(); iterator .hasNext(); ) { Entry<String, String> entry = iterator.next(); if (entry.getValue() == null) { continue; } claimMap.put(ClaimMapping.build(entry.getKey(), entry.getKey(), null, false), entry.getValue()); } return claimMap; }
private String getLocalIdFromProvisioningEntity(ProvisioningEntity provisioningEntity) { Map<org.wso2.carbon.identity.application.common.model.ClaimMapping, List<String>> attributeMap = provisioningEntity.getAttributes(); if (!attributeMap.isEmpty()) { List<String> attributeValues = attributeMap.get(org.wso2.carbon.identity.application.common.model.ClaimMapping.build( IdentityProvisioningConstants.ID_CLAIM_URI, null, null, false)); if (attributeValues != null && !attributeValues.isEmpty()) { return attributeValues.get(0); } } return null; }
/** * @param attributeValue * @return */ public static Map<ClaimMapping, String> buildClaimMappings(Map<String, String> attributeValue) { Map<ClaimMapping, String> claimMap = new HashMap<ClaimMapping, String>(); for (Iterator<Entry<String, String>> iterator = attributeValue.entrySet().iterator(); iterator .hasNext(); ) { Entry<String, String> entry = iterator.next(); if (entry.getValue() == null) { continue; } claimMap.put(ClaimMapping.build(entry.getKey(), entry.getKey(), null, false), entry.getValue()); } return claimMap; }
/** * @param attributeValue * @return */ public static Map<ClaimMapping, String> buildClaimMappings(Map<String, String> attributeValue) { Map<ClaimMapping, String> claimMap = new HashMap<ClaimMapping, String>(); for (Iterator<Entry<String, String>> iterator = attributeValue.entrySet().iterator(); iterator .hasNext(); ) { Entry<String, String> entry = iterator.next(); if (entry.getValue() == null) { continue; } claimMap.put(ClaimMapping.build(entry.getKey(), entry.getKey(), null, false), entry.getValue()); } return claimMap; }
/** * Required provisioning entity attribute value can be retrieved by passing attribute key, return null if value is * not found * @param provisioningEntity * @param claimURI * @return */ public static String getAttributeValue(ProvisioningEntity provisioningEntity, String claimURI){ Map<org.wso2.carbon.identity.application.common.model.ClaimMapping, List<String>> attributes = provisioningEntity.getAttributes(); if(!attributes.isEmpty()){ List<String> valueList = attributes.get(org.wso2.carbon.identity.application.common.model.ClaimMapping .build(claimURI, null, null, false)); if (valueList != null && !valueList.isEmpty()) { return valueList.get(0); } } return null; }
private List<ClaimMapping> getSpClaimMappings(ApplicationConfig appConfig) { Map<String, String> spClaimMapping = appConfig.getClaimMappings(); Map<String, String> mandatoryClaims = appConfig.getMandatoryClaimMappings(); Map<String, String> requestedClaims = appConfig.getRequestedClaimMappings(); List<ClaimMapping> spClaimMappingsList = new ArrayList<>(); spClaimMapping.forEach((key, value) -> { ClaimMapping claimMapping = ClaimMapping.build(value, key, null, false); mandatoryClaims.entrySet().stream().filter(entry1 -> key.equals(entry1.getKey())) .map(entry1 -> true).forEach(claimMapping::setMandatory); requestedClaims.entrySet().stream().filter(entry2 -> key.equals(entry2.getKey())) .map(entry2 -> true).forEach(claimMapping::setRequested); spClaimMappingsList.add(claimMapping); }); return spClaimMappingsList; }
private List<ClaimMapping> getSpClaimMappings(ApplicationConfig appConfig) { Map<String, String> spClaimMapping = appConfig.getClaimMappings(); Map<String, String> mandatoryClaims = appConfig.getMandatoryClaimMappings(); Map<String, String> requestedClaims = appConfig.getRequestedClaimMappings(); List<ClaimMapping> spClaimMappingsList = new ArrayList<>(); spClaimMapping.forEach((key, value) -> { ClaimMapping claimMapping = ClaimMapping.build(value, key, null, false); mandatoryClaims.entrySet().stream().filter(entry1 -> key.equals(entry1.getKey())) .map(entry1 -> true).forEach(claimMapping::setMandatory); requestedClaims.entrySet().stream().filter(entry2 -> key.equals(entry2.getKey())) .map(entry2 -> true).forEach(claimMapping::setRequested); spClaimMappingsList.add(claimMapping); }); return spClaimMappingsList; }
/** * Required provisioning entity attribute value can be retrieved by passing attribute key, return null if value is * not found * @param provisioningEntity * @param claimURI * @return */ public static String getAttributeValue(ProvisioningEntity provisioningEntity, String claimURI){ Map<org.wso2.carbon.identity.application.common.model.ClaimMapping, List<String>> attributes = provisioningEntity.getAttributes(); if (MapUtils.isNotEmpty(attributes)) { List<String> valueList = attributes.get(org.wso2.carbon.identity.application.common.model.ClaimMapping .build(claimURI, null, null, false)); if (valueList != null && !valueList.isEmpty()) { return valueList.get(0); } } return null; }
/** * Required provisioning entity attribute value can be retrieved by passing attribute key, return null if value is * not found * @param provisioningEntity * @param claimURI * @return */ public static String getAttributeValue(ProvisioningEntity provisioningEntity, String claimURI){ Map<org.wso2.carbon.identity.application.common.model.ClaimMapping, List<String>> attributes = provisioningEntity.getAttributes(); if (MapUtils.isNotEmpty(attributes)) { List<String> valueList = attributes.get(org.wso2.carbon.identity.application.common.model.ClaimMapping .build(claimURI, null, null, false)); if (valueList != null && !valueList.isEmpty()) { return valueList.get(0); } } return null; }
protected void buildClaimMappings(Map<ClaimMapping, String> claims, Map.Entry<String, Object> entry, String separator) { String claimValue = null; if (StringUtils.isBlank(separator)) { separator = IdentityCoreConstants.MULTI_ATTRIBUTE_SEPARATOR_DEFAULT; } try { JSONArray jsonArray = (JSONArray) JSONValue.parseWithException(entry.getValue().toString()); if (jsonArray != null && jsonArray.size() > 0) { Iterator attributeIterator = jsonArray.iterator(); while (attributeIterator.hasNext()) { if (claimValue == null) { claimValue = attributeIterator.next().toString(); } else { claimValue = claimValue + separator + attributeIterator.next().toString(); } } } } catch (Exception e) { claimValue = entry.getValue().toString(); } claims.put(ClaimMapping.build(entry.getKey(), entry.getKey(), null, false), claimValue); if (log.isDebugEnabled() && IdentityUtil.isTokenLoggable(IdentityConstants.IdentityTokens.USER_CLAIMS)) { log.debug("Adding claim mapping : " + entry.getKey() + " <> " + entry.getKey() + " : " + claimValue); } }
private ProvisioningEntity getInboundProvisioningEntity(ProvisioningEntity provisioningEntity, String tenantDomain, ProvisioningOperation operation, String userName) throws CarbonException, UserStoreException { Map<ClaimMapping, List<String>> outboundAttributes = new HashMap<>(); if (userName != null) { outboundAttributes.put(ClaimMapping.build( IdentityProvisioningConstants.USERNAME_CLAIM_URI, null, null, false), Arrays.asList(new String[]{userName})); } List<String> roleListOfUser = getUserRoles(userName, tenantDomain); if (roleListOfUser != null) { outboundAttributes.put(ClaimMapping.build( IdentityProvisioningConstants.GROUP_CLAIM_URI, null, null, false), roleListOfUser); } String domainAwareName = userName; String domainName = getDomainFromName(provisioningEntity.getEntityName()); if (domainName != null && !domainName.equals(UserCoreConstants.INTERNAL_DOMAIN)) { if (log.isDebugEnabled()) { log.debug("Adding domain name : " + domainName + " to user : " + userName); } domainAwareName = UserCoreUtil.addDomainToName(userName, domainName); } ProvisioningEntity inboundProvisioningEntity = new ProvisioningEntity( ProvisioningEntityType.USER, domainAwareName, operation, outboundAttributes); inboundProvisioningEntity.setInboundAttributes(getUserClaims(userName, tenantDomain)); return inboundProvisioningEntity; }
private ProvisioningEntity getInboundProvisioningEntity(ProvisioningEntity provisioningEntity, String tenantDomain, ProvisioningOperation operation, String userName) throws CarbonException, UserStoreException { Map<ClaimMapping, List<String>> outboundAttributes = new HashMap<>(); if (userName != null) { outboundAttributes.put(ClaimMapping.build( IdentityProvisioningConstants.USERNAME_CLAIM_URI, null, null, false), Arrays.asList(new String[]{userName})); } List<String> roleListOfUser = getUserRoles(userName, tenantDomain); if (roleListOfUser != null) { outboundAttributes.put(ClaimMapping.build( IdentityProvisioningConstants.GROUP_CLAIM_URI, null, null, false), roleListOfUser); } String domainAwareName = userName; String domainName = getDomainFromName(provisioningEntity.getEntityName()); if (domainName != null && !domainName.equals(UserCoreConstants.INTERNAL_DOMAIN)) { if (log.isDebugEnabled()) { log.debug("Adding domain name : " + domainName + " to user : " + userName); } domainAwareName = UserCoreUtil.addDomainToName(userName, domainName); } ProvisioningEntity inboundProvisioningEntity = new ProvisioningEntity( ProvisioningEntityType.USER, domainAwareName, operation, outboundAttributes); inboundProvisioningEntity.setInboundAttributes(getUserClaims(userName, tenantDomain)); return inboundProvisioningEntity; }
private ProvisioningEntity getInboundProvisioningEntity(ProvisioningEntity provisioningEntity, String tenantDomain, ProvisioningOperation operation, String userName) throws CarbonException, UserStoreException { Map<ClaimMapping, List<String>> outboundAttributes = new HashMap<>(); if (userName != null) { outboundAttributes.put(ClaimMapping.build( IdentityProvisioningConstants.USERNAME_CLAIM_URI, null, null, false), Arrays.asList(new String[]{userName})); } List<String> roleListOfUser = getUserRoles(userName, tenantDomain); if (roleListOfUser != null) { outboundAttributes.put(ClaimMapping.build( IdentityProvisioningConstants.GROUP_CLAIM_URI, null, null, false), roleListOfUser); } String domainAwareName = userName; String domainName = getDomainFromName(provisioningEntity.getEntityName()); if (domainName != null && !domainName.equals(UserCoreConstants.INTERNAL_DOMAIN)) { if (log.isDebugEnabled()) { log.debug("Adding domain name : " + domainName + " to user : " + userName); } domainAwareName = UserCoreUtil.addDomainToName(userName, domainName); } ProvisioningEntity inboundProvisioningEntity = new ProvisioningEntity( ProvisioningEntityType.USER, domainAwareName, operation, outboundAttributes); inboundProvisioningEntity.setInboundAttributes(getUserClaims(userName, tenantDomain)); return inboundProvisioningEntity; }
/** * Set all the claim mappings of the configured SP claim dialects. * * @param claimConfig Application claim configuration * return Application claim mappings */ private void setSpDialectClaims(ClaimConfig claimConfig, List<ClaimMapping> spClaimMappings) { String[] spClaimDialects = claimConfig.getSpClaimDialects(); if (!ArrayUtils.isEmpty(spClaimDialects)) { List<String> spClaimDialectsList = Arrays.asList(spClaimDialects); spClaimDialectsList.forEach(spClaimDialect -> { try { String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); List<ExternalClaim> externalClaims = FrameworkServiceDataHolder.getInstance() .getClaimMetadataManagementService().getExternalClaims(spClaimDialect, tenantDomain); externalClaims.stream().map(externalClaim -> ClaimMapping.build(externalClaim .getMappedLocalClaim(), externalClaim.getClaimURI(), null, true)) .forEach(spClaimMappings::add); } catch (ClaimMetadataException e) { log.error("Error when getting external claims of dialect: " + spClaimDialect, e); } }); } } }
/** * Set all the claim mappings of the configured SP claim dialects. * * @param claimConfig Application claim configuration * return Application claim mappings */ private void setSpDialectClaims(ClaimConfig claimConfig, List<ClaimMapping> spClaimMappings) { String[] spClaimDialects = claimConfig.getSpClaimDialects(); if (!ArrayUtils.isEmpty(spClaimDialects)) { List<String> spClaimDialectsList = Arrays.asList(spClaimDialects); spClaimDialectsList.forEach(spClaimDialect -> { try { String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); List<ExternalClaim> externalClaims = FrameworkServiceDataHolder.getInstance() .getClaimMetadataManagementService().getExternalClaims(spClaimDialect, tenantDomain); externalClaims.stream().map(externalClaim -> ClaimMapping.build(externalClaim .getMappedLocalClaim(), externalClaim.getClaimURI(), null, true)) .forEach(spClaimMappings::add); } catch (ClaimMetadataException e) { log.error("Error when getting external claims of dialect: " + spClaimDialect, e); } }); } } }
claims.put(ClaimMapping.build(entry.getKey(), entry.getKey(), null, false), entry.getValue().toString()); if (log.isDebugEnabled() &&