Search in sources :

Example 1 with UserStoreAttributeMappingResponse

use of org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreAttributeMappingResponse in project identity-api-server by wso2.

the class ServerUserStoreService method getUserStoreAttributeMappings.

/**
 * Get user store attributes mappings for a given user store type id.
 *
 * @param typeId                       String user store type id.
 * @param includeIdentityClaimMappings Whether to include claim mapping for identity claims with other userstore.
 *                                     attributes.
 * @return UserStoreAttributeMapping user store attribute mappings.
 */
public UserStoreAttributeMappingResponse getUserStoreAttributeMappings(String typeId, boolean includeIdentityClaimMappings) {
    Set<String> classNames;
    String userStoreName = getUserStoreType(base64URLDecodeId(typeId));
    if (StringUtils.isBlank(userStoreName)) {
        throw handleException(Response.Status.BAD_REQUEST, UserStoreConstants.ErrorMessage.ERROR_CODE_INVALID_INPUT);
    }
    try {
        UserStoreConfigService userStoreConfigService = UserStoreConfigServiceHolder.getInstance().getUserStoreConfigService();
        classNames = userStoreConfigService.getAvailableUserStoreClasses();
        if (CollectionUtils.isEmpty(classNames) || !classNames.contains(userStoreName)) {
            throw handleException(Response.Status.NOT_FOUND, UserStoreConstants.ErrorMessage.ERROR_CODE_NOT_FOUND);
        }
    } catch (IdentityUserStoreMgtException e) {
        UserStoreConstants.ErrorMessage errorEnum = UserStoreConstants.ErrorMessage.ERROR_CODE_ERROR_RETRIEVING_USER_STORE;
        throw handleIdentityUserStoreMgtException(e, errorEnum);
    }
    UserStoreAttributeMappingResponse userStoreAttributeMappingResponse = new UserStoreAttributeMappingResponse();
    List<UserStoreAttribute> attributeMappings = getAttributeMappings(userStoreName, includeIdentityClaimMappings);
    userStoreAttributeMappingResponse = userStoreAttributeMappingResponse.attributeMappings(new AttributeMappingsToApiModel().apply(attributeMappings)).typeId(typeId).typeName(userStoreName);
    try {
        boolean isLocal = UserStoreManagerRegistry.isLocalUserStore(userStoreName);
        userStoreAttributeMappingResponse.setIsLocal(isLocal);
    } catch (UserStoreException e) {
        LOG.error(String.format("Userstore type is not found for %s", userStoreName), e);
    }
    return userStoreAttributeMappingResponse;
}
Also used : IdentityUserStoreMgtException(org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreMgtException) UserStoreAttributeMappingResponse(org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreAttributeMappingResponse) UserStoreException(org.wso2.carbon.user.api.UserStoreException) UserStoreConfigService(org.wso2.carbon.identity.user.store.configuration.UserStoreConfigService) UserStoreAttribute(org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttribute) AttributeMappingsToApiModel(org.wso2.carbon.identity.api.server.userstore.v1.core.functions.userstore.AttributeMappingsToApiModel)

Aggregations

AttributeMappingsToApiModel (org.wso2.carbon.identity.api.server.userstore.v1.core.functions.userstore.AttributeMappingsToApiModel)1 UserStoreAttributeMappingResponse (org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreAttributeMappingResponse)1 UserStoreConfigService (org.wso2.carbon.identity.user.store.configuration.UserStoreConfigService)1 UserStoreAttribute (org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttribute)1 IdentityUserStoreMgtException (org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreMgtException)1 UserStoreException (org.wso2.carbon.user.api.UserStoreException)1