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; }
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; }
/** * 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; }
/** * Update the value of given group attribute with mapped roles * * @param provisioningEntity * @param idPRoleMapping * @param groupAttributeName */ private void updateMappedGroupForAttribute(ProvisioningEntity provisioningEntity, RoleMapping[] idPRoleMapping, String groupAttributeName) { List<String> groupList = ProvisioningUtil.getClaimValues(provisioningEntity.getAttributes(), groupAttributeName, null); List<String> mappedGroups = getMappedGroups(groupList, idPRoleMapping); if (mappedGroups != null && !mappedGroups.isEmpty()) { ProvisioningUtil.setClaimValue(groupAttributeName, provisioningEntity.getAttributes(), mappedGroups); } } }
/** * Update the value of given group attribute with mapped roles * * @param provisioningEntity * @param idPRoleMapping * @param groupAttributeName */ private void updateMappedGroupForAttribute(ProvisioningEntity provisioningEntity, RoleMapping[] idPRoleMapping, String groupAttributeName) { List<String> groupList = ProvisioningUtil.getClaimValues(provisioningEntity.getAttributes(), groupAttributeName, null); List<String> mappedGroups = getMappedGroups(groupList, idPRoleMapping); if (mappedGroups != null && !mappedGroups.isEmpty()) { ProvisioningUtil.setClaimValue(groupAttributeName, provisioningEntity.getAttributes(), mappedGroups); } } }
/** * 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; }
/** * @param provisioningEntity * @param idPRoleMapping */ private void updateProvisioningUserWithMappedRoles(ProvisioningEntity provisioningEntity, RoleMapping[] idPRoleMapping) { if (provisioningEntity.getEntityType() != ProvisioningEntityType.USER || idPRoleMapping == null || idPRoleMapping.length == 0) { return; } List<String> userGroups = getGroupNames(provisioningEntity.getAttributes()); if (CollectionUtils.isEmpty(userGroups)) { return; } Map<String, String> mappedRoles = new HashMap<>(); for (RoleMapping mapping : idPRoleMapping) { mappedRoles.put(mapping.getLocalRole().getLocalRoleName(), mapping.getRemoteRole()); } List<String> mappedUserGroups = new ArrayList<>(); for (Iterator<String> iterator = userGroups.iterator(); iterator.hasNext(); ) { String userGroup = iterator.next(); String mappedGroup = null; if ((mappedGroup = mappedRoles.get(userGroup)) != null) { mappedUserGroups.add(mappedGroup); } } ProvisioningUtil.setClaimValue(IdentityProvisioningConstants.GROUP_CLAIM_URI, provisioningEntity.getAttributes(), mappedUserGroups); }
/** * @param provisioningEntity * @param provisionByRoleList * @param tenantDomain * @return * @throws CarbonException * @throws UserStoreException */ protected boolean canUserBeProvisioned(ProvisioningEntity provisioningEntity, String[] provisionByRoleList, String tenantDomain) throws UserStoreException, CarbonException { if (provisioningEntity.getEntityType() != ProvisioningEntityType.USER || provisionByRoleList == null || provisionByRoleList.length == 0) { // we apply restrictions only for users. // if service provider's out-bound provisioning configuration does not define any roles // to be provisioned then we apply no restrictions. return true; } String userName = getUserName(provisioningEntity.getAttributes()); List<String> roleListOfUser = getUserRoles(userName, tenantDomain); for (String provisionByRole : provisionByRoleList) { if (roleListOfUser.contains(provisionByRole)) { return true; } } return false; }
/** * @param provisioningEntity * @param provisionByRoleList * @param tenantDomain * @return * @throws CarbonException * @throws UserStoreException */ protected boolean canUserBeProvisioned(ProvisioningEntity provisioningEntity, String[] provisionByRoleList, String tenantDomain) throws UserStoreException, CarbonException { if (provisioningEntity.getEntityType() != ProvisioningEntityType.USER || provisionByRoleList == null || provisionByRoleList.length == 0) { // we apply restrictions only for users. // if service provider's out-bound provisioning configuration does not define any roles // to be provisioned then we apply no restrictions. return true; } String userName = getUserName(provisioningEntity.getAttributes()); List<String> roleListOfUser = getUserRoles(userName, tenantDomain); for (String provisionByRole : provisionByRoleList) { if (roleListOfUser.contains(provisionByRole)) { return true; } } return false; }
/** * @param provisioningEntity * @param provisionByRoleList * @param tenantDomain * @return * @throws CarbonException * @throws UserStoreException */ protected boolean canUserBeProvisioned(ProvisioningEntity provisioningEntity, String[] provisionByRoleList, String tenantDomain) throws UserStoreException, CarbonException { if (provisioningEntity.getEntityType() != ProvisioningEntityType.USER || provisionByRoleList == null || provisionByRoleList.length == 0) { // we apply restrictions only for users. // if service provider's out-bound provisioning configuration does not define any roles // to be provisioned then we apply no restrictions. return true; } String userName = getUserName(provisioningEntity.getAttributes()); List<String> roleListOfUser = getUserRoles(userName, tenantDomain); for (String provisionByRole : provisionByRoleList) { if (roleListOfUser.contains(provisionByRole)) { return true; } } return false; }
/** * Sets the password. * * @param user * @param userEntity * @throws CharonException * @throws BadRequestException */ private void setUserPassword(User user, ProvisioningEntity userEntity) throws CharonException, BadRequestException { if ("true".equals(scimProvider.getProperty(SCIM2ProvisioningConnectorConstants. SCIM_ENABLE_PASSWORD_PROVISIONING))) { setPassword(user, getPassword(userEntity.getAttributes())); } else if (StringUtils.isNotBlank(scimProvider.getProperty(SCIM2ProvisioningConnectorConstants. SCIM_DEFAULT_PASSWORD))) { setPassword(user, scimProvider.getProperty(SCIM2ProvisioningConnectorConstants.SCIM_DEFAULT_PASSWORD)); } }
/** * Creates the group. * * @param groupEntity * @return * @throws IdentityProvisioningException */ private String createGroup(ProvisioningEntity groupEntity) throws IdentityProvisioningException { String groupName = null; try { List<String> groupNames = getGroupNames(groupEntity.getAttributes()); if (CollectionUtils.isNotEmpty(groupNames)) { groupName = groupNames.get(0); } Group group = new Group(); group.setDisplayName(groupName); List<String> userList = getUserNames(groupEntity.getAttributes()); setGroupMembers(group, userList); ProvisioningClient scimProvsioningClient = new ProvisioningClient(scimProvider, group, null); scimProvsioningClient.provisionCreateGroup(); } catch (Exception e) { throw new IdentityProvisioningException("Error while adding group : " + groupName, e); } return null; }
/** * Creates the user. * * @param userEntity * @throws UserStoreException */ private void createUser(ProvisioningEntity userEntity) throws IdentityProvisioningException { String userName = null; try { List<String> userNames = getUserNames(userEntity.getAttributes()); if (CollectionUtils.isNotEmpty(userNames)) { userName = userNames.get(0); } // get single-valued claims Map<String, String> singleValued = getSingleValuedClaims(userEntity.getAttributes()); // if user created through management console, claim values are not present. User user = (User) SCIMClaimResolver.constructSCIMObjectFromAttributes(singleValued, 1); user.setUserName(userName); setUserPassword(user, userEntity); ProvisioningClient scimProvsioningClient = new ProvisioningClient(scimProvider, user, null); scimProvsioningClient.provisionCreateUser(); } catch (Exception e) { throw new IdentityProvisioningException("Error while creating the user : " + userName, e); } }
/** * Deletes the user. * * @param userEntity * @throws IdentityProvisioningException */ private void deleteUser(ProvisioningEntity userEntity) throws IdentityProvisioningException { String userName = null; try { List<String> userNames = getUserNames(userEntity.getAttributes()); if (CollectionUtils.isNotEmpty(userNames)) { userName = userNames.get(0); } User user = new User(); user.setUserName(userName); ProvisioningClient scimProvsioningClient = new ProvisioningClient(scimProvider, user, null); scimProvsioningClient.provisionDeleteUser(); } catch (Exception e) { throw new IdentityProvisioningException("Error while deleting user : " + userName, e); } }
/** * Deletes the group. * * @param groupEntity * @throws IdentityProvisioningException */ private void deleteGroup(ProvisioningEntity groupEntity) throws IdentityProvisioningException { String groupName = null; try { List<String> groupNames = getGroupNames(groupEntity.getAttributes()); if (CollectionUtils.isNotEmpty(groupNames)) { groupName = groupNames.get(0); } Group group = new Group(); group.setDisplayName(groupName); ProvisioningClient scimProvsioningClient = new ProvisioningClient(scimProvider, group, null); scimProvsioningClient.provisionDeleteGroup(); } catch (Exception e) { throw new IdentityProvisioningException("Error while deleting group : " + groupName, e); } }
List<String> groupNames = getGroupNames(groupEntity.getAttributes()); String groupName = null; if (CollectionUtils.isNotEmpty(groupNames)) { List<String> userList = getUserNames(groupEntity.getAttributes()); setGroupMembers(group, userList);
String givenNameClaimKey = "google_prov_givenname_claim_dropdown"; Map<String, String> requiredAttributes = getSingleValuedClaims(provisioningEntity.getAttributes());
List<String> userNames = getUserNames(userEntity.getAttributes()); if (CollectionUtils.isNotEmpty(userNames)) { userName = userNames.get(0); Map<String, String> singleValued = getSingleValuedClaims(userEntity.getAttributes());