private String generateMessageOnFailureProvisioningOperation(String idPName, String connectorType, ProvisioningEntity provisioningEntity) { if (log.isDebugEnabled()) { String errMsg = "Provisioning failed for IDP = " + idPName + " " + "Connector Type =" + connectorType + " "; errMsg += " Provisioned entity name = " + provisioningEntity.getEntityName() + " For operation = " + provisioningEntity.getOperation() + " " + "failed "; log.error(errMsg); } return "Provisioning failed for IDP = " + idPName + " " + "with Entity name=" + provisioningEntity.getEntityName(); }
private String generateMessageOnFailureProvisioningOperation(String idPName, String connectorType, ProvisioningEntity provisioningEntity) { if (log.isDebugEnabled()) { String errMsg = "Provisioning failed for IDP = " + idPName + " " + "Connector Type =" + connectorType + " "; errMsg += " Provisioned entity name = " + provisioningEntity.getEntityName() + " For operation = " + provisioningEntity.getOperation() + " " + "failed "; log.error(errMsg); } return "Provisioning failed for IDP = " + idPName + " " + "with Entity name=" + provisioningEntity.getEntityName(); }
private String generateMessageOnFailureProvisioningOperation(String idPName, String connectorType, ProvisioningEntity provisioningEntity) { if (log.isDebugEnabled()) { String errMsg = "Provisioning failed for IDP = " + idPName + " " + "Connector Type =" + connectorType + " "; errMsg += " Provisioned entity name = " + provisioningEntity.getEntityName() + " For operation = " + provisioningEntity.getOperation() + " " + "failed "; log.error(errMsg); } return "Provisioning failed for IDP = " + idPName + " " + "with Entity name=" + provisioningEntity.getEntityName(); }
/** * Alter username while changing user to active state to inactive state. This is necessary when adding previously * deleted users. * * @param provisioningEntity * @return * @throws IdentityProvisioningException */ protected String alterUsername(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { if (StringUtils.isBlank(provisioningEntity.getEntityName())) { throw new IdentityProvisioningException("Could Not Find Entity Name from Provisioning Entity"); } String alteredUsername = SalesforceConnectorConstants.SALESFORCE_OLD_USERNAME_PREFIX + UUIDGenerator.generateUUID() + provisioningEntity.getEntityName(); if (log.isDebugEnabled()) { log.debug("Alter username: " + provisioningEntity.getEntityName() + " to: " + alteredUsername + "while deleting user"); } return alteredUsername; } }
protected String buildUserId(ProvisioningEntity provisioningEntity, String provisioningPattern, String separator, String idpName) throws IdentityProvisioningException { Map<String, String> provValues = new HashMap<>(); String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); String username = provisioningEntity.getEntityName(); String userStoreDomain = getDomainFromUserName(username); if (separator == null) { separator = ""; } String provIdentifier = ""; provValues.put(PROVISIONING_TENANT, tenantDomain.replaceAll(separator, "")); if (username != null) { provValues.put(PROVISIONING_USER, removeDomainFromUserName(username)); } provValues.put(PROVISIONING_IDP, idpName.replaceAll(separator, "")); if (userStoreDomain != null) { provValues.put(PROVISIONING_DOMAIN, userStoreDomain.replaceAll(separator, "")); } String[] provisioningEntries = buildProvisioningEntries(provisioningPattern); for (int i = 0; i < provisioningEntries.length; i++) { if (StringUtils.isNotBlank(provisioningEntries[i])) { if (StringUtils.isBlank(provIdentifier)) { provIdentifier = provValues.get(provisioningEntries[i].trim()); } else { provIdentifier = provIdentifier.concat(separator).concat(provValues.get(provisioningEntries[i].trim())); } } } return provIdentifier.toLowerCase(); }
protected String buildUserId(ProvisioningEntity provisioningEntity, String provisioningPattern, String separator, String idpName) throws IdentityProvisioningException { Map<String, String> provValues = new HashMap<>(); String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); String username = provisioningEntity.getEntityName(); String userStoreDomain = getDomainFromUserName(username); if (separator == null) { separator = ""; } String provIdentifier = ""; provValues.put(PROVISIONING_TENANT, tenantDomain.replaceAll(separator, "")); if (username != null) { provValues.put(PROVISIONING_USER, removeDomainFromUserName(username)); } provValues.put(PROVISIONING_IDP, idpName.replaceAll(separator, "")); if (userStoreDomain != null) { provValues.put(PROVISIONING_DOMAIN, userStoreDomain.replaceAll(separator, "")); } String[] provisioningEntries = buildProvisioningEntries(provisioningPattern); for (int i = 0; i < provisioningEntries.length; i++) { if (StringUtils.isNotBlank(provisioningEntries[i])) { if (StringUtils.isBlank(provIdentifier)) { provIdentifier = provValues.get(provisioningEntries[i].trim()); } else { provIdentifier = provIdentifier.concat(separator).concat(provValues.get(provisioningEntries[i].trim())); } } } return provIdentifier.toLowerCase(); }
protected String buildUserId(ProvisioningEntity provisioningEntity, String provisioningPattern, String separator, String idpName) throws IdentityProvisioningException { Map<String, String> provValues = new HashMap<>(); String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); String username = provisioningEntity.getEntityName(); String userStoreDomain = getDomainFromUserName(username); if (separator == null) { separator = ""; } String provIdentifier = ""; provValues.put(PROVISIONING_TENANT, tenantDomain.replaceAll(separator, "")); if (username != null) { provValues.put(PROVISIONING_USER, removeDomainFromUserName(username)); } provValues.put(PROVISIONING_IDP, idpName.replaceAll(separator, "")); if (userStoreDomain != null) { provValues.put(PROVISIONING_DOMAIN, userStoreDomain.replaceAll(separator, "")); } String[] provisioningEntries = buildProvisioningEntries(provisioningPattern); for (int i = 0; i < provisioningEntries.length; i++) { if (StringUtils.isNotBlank(provisioningEntries[i])) { if (StringUtils.isBlank(provIdentifier)) { provIdentifier = provValues.get(provisioningEntries[i].trim()); } else { provIdentifier = provIdentifier.concat(separator).concat(provValues.get(provisioningEntries[i].trim())); } } } return provIdentifier.toLowerCase(); }
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; }
private void provisionUser(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { if (provisioningEntity.getOperation() == ProvisioningOperation.POST) { createUser(provisioningEntity); } else if (provisioningEntity.getOperation() == ProvisioningOperation.DELETE) { deleteUser(provisioningEntity); } else if (provisioningEntity.getOperation() == ProvisioningOperation.PUT) { updateUser(provisioningEntity, ProvisioningOperation.PUT); } else { log.warn("Unsupported provisioning operation : " + provisioningEntity.getOperation() + " for provisioning entity : " + provisioningEntity.getEntityName()); } }
+ provisioningEntity.getEntityName(), e); log.debug("updating user :" + provisioningEntity.getEntityName() + " with the primaryEmail : " + provisionedIdentifier.getIdentifier());
protected String createUser(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { boolean isDebugEnabled = log.isDebugEnabled(); if (isDebugEnabled) { log.debug("Triggering create operation for Google Provisioning Connector"); } User createdUser = null; try { User newUser = new User(); newUser = buildGoogleUser(provisioningEntity); Directory.Users.Insert request = getDirectoryService().users().insert(newUser); createdUser = request.execute(); } catch (IOException e) { throw new IdentityProvisioningException("Error while creating user : " + provisioningEntity.getEntityName(), e); } if (isDebugEnabled) { log.debug("Returning created user's email : " + createdUser.getPrimaryEmail()); } if (log.isTraceEnabled()) { log.trace("Ending createUser() of " + GoogleProvisioningConnector.class); } return createdUser.getPrimaryEmail(); }
/** * Initiates the SCIM2 operation. * * @param provisioningEntity * @return provisionedEntity * @throws IdentityProvisioningException */ @Override public ProvisionedIdentifier provision(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { if (provisioningEntity != null) { if (provisioningEntity.isJitProvisioning() && !isJitProvisioningEnabled()) { log.debug("JIT provisioning disabled for SCIM 2.0 connector"); return null; } if (provisioningEntity.getEntityType() == ProvisioningEntityType.USER) { provisionUser(provisioningEntity); } else if (provisioningEntity.getEntityType() == ProvisioningEntityType.GROUP) { provisionGroup(provisioningEntity); } else { log.warn("Unsupported provisioning entity : " + provisioningEntity.getEntityName()); } } return null; }
protected String createUser(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { boolean isDebugEnabled = log.isDebugEnabled(); if (isDebugEnabled) { log.debug("Triggering create operation for Google Provisioning Connector"); } User createdUser; try { User newUser = buildGoogleUser(provisioningEntity); Directory.Users.Insert request = getDirectoryService().users().insert(newUser); createdUser = request.execute(); } catch (IOException e) { throw new IdentityProvisioningException("Error while creating user: " + provisioningEntity.getEntityName(), e); } if (isDebugEnabled) { log.debug("Returning created user's email: " + createdUser.getPrimaryEmail()); } return createdUser.getPrimaryEmail(); }
private void provisionGroup(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { if (provisioningEntity.getOperation() == ProvisioningOperation.DELETE) { deleteGroup(provisioningEntity); } else if (provisioningEntity.getOperation() == ProvisioningOperation.POST) { createGroup(provisioningEntity); } else if (provisioningEntity.getOperation() == ProvisioningOperation.PUT) { updateGroup(provisioningEntity); } else { log.warn("Unsupported provisioning operation : " + provisioningEntity.getOperation() + " for provisioning entity : " + provisioningEntity.getEntityName()); } }
protected void updateUser(ProvisioningEntity provisioningEntity) throws IdentityProvisioningException { boolean isDebugEnabled = log.isDebugEnabled(); if (isDebugEnabled) { log.debug("Triggering update operation for Google Provisioning Connector"); } ProvisionedIdentifier provisionedIdentifier = provisioningEntity.getIdentifier(); if (provisionedIdentifier != null && provisionedIdentifier.getIdentifier() != null) { User updateUser = updateGoogleUser(provisioningEntity); if (updateUser == null) { return; } Directory.Users.Update request; try { request = getDirectoryService().users().update( provisionedIdentifier.getIdentifier(), updateUser); request.execute(); } catch (IOException e) { throw new IdentityProvisioningException("Error while updating Google user : " + provisioningEntity.getEntityName(), e); } if (isDebugEnabled) { log.debug("updating user :" + provisioningEntity.getEntityName() + " with the primaryEmail : " + provisionedIdentifier.getIdentifier()); } } else { throw new IdentityProvisioningException( "Cannot updating Google user, provisionedIdentifier is invalid."); } }
/** * @param identityProviderName * @param connectorType * @param provisioningEntity * @param tenantId * @throws IdentityApplicationManagementException */ public void addProvisioningEntity(String identityProviderName, String connectorType, ProvisioningEntity provisioningEntity, int tenantId, String tenantDomain) throws IdentityApplicationManagementException { provisioningMgtDAO.addProvisioningEntity(identityProviderName, connectorType, provisioningEntity, tenantId); if (log.isDebugEnabled()) { log.debug("Caching newly added Provisioning Entity : " + "identityProviderName=" + identityProviderName + "&& connectorType=" + connectorType + "&& provisioningEntityType=" + provisioningEntity.getEntityType() + "&& provisioningEntityName=" + provisioningEntity.getEntityName() + "&& provisioningIdentifier=" + provisioningEntity.getIdentifier().getIdentifier()); } ProvisioningEntityCacheKey cacheKey = new ProvisioningEntityCacheKey(identityProviderName, connectorType, provisioningEntity, tenantDomain); ProvisioningEntityCacheEntry entry = new ProvisioningEntityCacheEntry(); ProvisioningEntity cachedProvisioningEntity = new ProvisioningEntity(provisioningEntity.getEntityType(), provisioningEntity.getOperation()); ProvisionedIdentifier provisionedIdentifier = provisioningEntity.getIdentifier(); cachedProvisioningEntity.setIdentifier(provisionedIdentifier); entry.setProvisioningEntity(cachedProvisioningEntity); provisioningEntityCache.addToCache(cacheKey, entry); }
/** * @param identityProviderName * @param connectorType * @param provisioningEntity * @param tenantId * @throws IdentityApplicationManagementException */ public void addProvisioningEntity(String identityProviderName, String connectorType, ProvisioningEntity provisioningEntity, int tenantId, String tenantDomain) throws IdentityApplicationManagementException { provisioningMgtDAO.addProvisioningEntity(identityProviderName, connectorType, provisioningEntity, tenantId); if (log.isDebugEnabled()) { log.debug("Caching newly added Provisioning Entity : " + "identityProviderName=" + identityProviderName + "&& connectorType=" + connectorType + "&& provisioningEntityType=" + provisioningEntity.getEntityType() + "&& provisioningEntityName=" + provisioningEntity.getEntityName() + "&& provisioningIdentifier=" + provisioningEntity.getIdentifier().getIdentifier()); } ProvisioningEntityCacheKey cacheKey = new ProvisioningEntityCacheKey(identityProviderName, connectorType, provisioningEntity, tenantDomain); ProvisioningEntityCacheEntry entry = new ProvisioningEntityCacheEntry(); ProvisioningEntity cachedProvisioningEntity = new ProvisioningEntity(provisioningEntity.getEntityType(), provisioningEntity.getOperation()); ProvisionedIdentifier provisionedIdentifier = provisioningEntity.getIdentifier(); cachedProvisioningEntity.setIdentifier(provisionedIdentifier); entry.setProvisioningEntity(cachedProvisioningEntity); provisioningEntityCache.addToCache(cacheKey, entry); }
/** * @param identityProviderName * @param connectorType * @param provisioningEntity * @param tenantId * @throws IdentityApplicationManagementException */ public void addProvisioningEntity(String identityProviderName, String connectorType, ProvisioningEntity provisioningEntity, int tenantId, String tenantDomain) throws IdentityApplicationManagementException { provisioningMgtDAO.addProvisioningEntity(identityProviderName, connectorType, provisioningEntity, tenantId); if (log.isDebugEnabled()) { log.debug("Caching newly added Provisioning Entity : " + "identityProviderName=" + identityProviderName + "&& connectorType=" + connectorType + "&& provisioningEntityType=" + provisioningEntity.getEntityType() + "&& provisioningEntityName=" + provisioningEntity.getEntityName() + "&& provisioningIdentifier=" + provisioningEntity.getIdentifier().getIdentifier()); } ProvisioningEntityCacheKey cacheKey = new ProvisioningEntityCacheKey(identityProviderName, connectorType, provisioningEntity, tenantDomain); ProvisioningEntityCacheEntry entry = new ProvisioningEntityCacheEntry(); ProvisioningEntity cachedProvisioningEntity = new ProvisioningEntity(provisioningEntity.getEntityType(), provisioningEntity.getOperation()); ProvisionedIdentifier provisionedIdentifier = provisioningEntity.getIdentifier(); cachedProvisioningEntity.setIdentifier(provisionedIdentifier); entry.setProvisioningEntity(cachedProvisioningEntity); provisioningEntityCache.addToCache(cacheKey, entry); }