Search in sources :

Example 1 with IdentityUserStoreServerException

use of org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreServerException in project identity-api-server by wso2.

the class ServerUserStoreService method handleIdentityUserStoreMgtException.

/**
 * Handle handleIdentityUserStoreMgtException, ie, handle the appropriate client and server exception and set
 * proper API Error Response.
 *
 * @param exception Exception thrown
 * @param errorEnum Corresponding error enum
 * @return API Error object.
 */
private APIError handleIdentityUserStoreMgtException(IdentityUserStoreMgtException exception, UserStoreConstants.ErrorMessage errorEnum) {
    Response.Status status;
    ErrorResponse errorResponse;
    if (exception instanceof IdentityUserStoreServerException) {
        errorResponse = getErrorBuilder(errorEnum).build(LOG, exception, errorEnum.getDescription());
        status = Response.Status.INTERNAL_SERVER_ERROR;
        return handleIdentityUserStoreException(exception, errorResponse, status);
    } else if (exception instanceof IdentityUserStoreClientException) {
        errorResponse = getErrorBuilder(errorEnum).build(LOG, exception.getMessage());
        if (ERROR_CODE_RESOURCE_LIMIT_REACHED.equals(exception.getErrorCode())) {
            return handleResourceLimitReached();
        }
        // Send client error with specific error code or as a BAD request.
        status = Response.Status.BAD_REQUEST;
        return handleIdentityUserStoreException(exception, errorResponse, status);
    } else {
        // Internal Server error
        errorResponse = getErrorBuilder(errorEnum).build(LOG, exception, errorEnum.getDescription());
        status = Response.Status.INTERNAL_SERVER_ERROR;
        return new APIError(status, errorResponse);
    }
}
Also used : UserStoreListResponse(org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreListResponse) UserStoreAttributeMappingResponse(org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreAttributeMappingResponse) Response(javax.ws.rs.core.Response) ErrorResponse(org.wso2.carbon.identity.api.server.common.error.ErrorResponse) UserStoreResponse(org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreResponse) ConnectionEstablishedResponse(org.wso2.carbon.identity.api.server.userstore.v1.model.ConnectionEstablishedResponse) IdentityUserStoreServerException(org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreServerException) IdentityUserStoreClientException(org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreClientException) APIError(org.wso2.carbon.identity.api.server.common.error.APIError) ErrorResponse(org.wso2.carbon.identity.api.server.common.error.ErrorResponse)

Example 2 with IdentityUserStoreServerException

use of org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreServerException in project carbon-identity-framework by wso2.

the class UserStoreAttributeMappingChangesLoader method buildAttributeMappings.

private void buildAttributeMappings(InputStream inStream, Map<String, Map<String, ChangedUserStoreAttribute>> userStoreAttributeChanges) throws XMLStreamException, OMException, IdentityUserStoreServerException {
    StAXOMBuilder builder = new StAXOMBuilder(inStream);
    Iterator iterator = builder.getDocumentElement().getChildElements();
    String userStoreType = builder.getDocumentElement().getAttributeValue(new QName(USERSTORE_TYPE));
    Map<String, ChangedUserStoreAttribute> attributeChangeMap = new HashMap<>();
    if (iterator == null) {
        return;
    }
    while (iterator.hasNext()) {
        OMElement attributeElement = (OMElement) iterator.next();
        Iterator attributeIterator = attributeElement.getChildElements();
        ChangedUserStoreAttribute changedUserStoreAttribute = new ChangedUserStoreAttribute();
        UserStoreAttribute userStoreAttribute = new UserStoreAttribute();
        if (attributeIterator == null) {
            continue;
        }
        while (attributeIterator.hasNext()) {
            OMElement attributes = (OMElement) attributeIterator.next();
            String attributeQName = attributes.getQName().getLocalPart();
            if (StringUtils.equalsIgnoreCase(OPERATION, attributeQName)) {
                changedUserStoreAttribute.setOperation(getOperation(attributes.getText()));
            } else if (StringUtils.equalsIgnoreCase(ATTRIBUTE_ID, attributeQName)) {
                userStoreAttribute.setMappedAttribute(attributes.getText());
            } else if (StringUtils.equalsIgnoreCase(CLAIM_URI, attributeQName)) {
                userStoreAttribute.setClaimUri(attributes.getText());
                userStoreAttribute.setClaimId(Base64.getUrlEncoder().withoutPadding().encodeToString(attributes.getText().getBytes(StandardCharsets.UTF_8)));
            } else if (StringUtils.equalsIgnoreCase(DISPLAY_NAME, attributeQName)) {
                userStoreAttribute.setDisplayName(attributes.getText());
            }
        }
        changedUserStoreAttribute.setUsAttribute(userStoreAttribute);
        attributeChangeMap.put(userStoreAttribute.getClaimId(), changedUserStoreAttribute);
    }
    userStoreAttributeChanges.put(userStoreType, attributeChangeMap);
}
Also used : HashMap(java.util.HashMap) QName(javax.xml.namespace.QName) Iterator(java.util.Iterator) ChangedUserStoreAttribute(org.wso2.carbon.identity.user.store.configuration.model.ChangedUserStoreAttribute) StAXOMBuilder(org.apache.axiom.om.impl.builder.StAXOMBuilder) OMElement(org.apache.axiom.om.OMElement) UserStoreAttribute(org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttribute) ChangedUserStoreAttribute(org.wso2.carbon.identity.user.store.configuration.model.ChangedUserStoreAttribute)

Example 3 with IdentityUserStoreServerException

use of org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreServerException in project carbon-identity-framework by wso2.

the class UserStoreConfigComponent method readUserStoreAttributeMappingConfigs.

private void readUserStoreAttributeMappingConfigs() {
    UserStoreAttributeMappings mappings = new UserStoreAttributeMappings();
    Map<String, Map<String, UserStoreAttribute>> userStoreAttributeMappings = new HashMap<>();
    Map<String, UserStoreAttribute> defaultAttributeMappings = null;
    Map<String, Map<String, ChangedUserStoreAttribute>> attributeMappingChanges = null;
    try {
        defaultAttributeMappings = new DefaultUserStoreAttributeConfigLoader().loadDefaultUserStoreAttributeMappings();
        attributeMappingChanges = new UserStoreAttributeMappingChangesLoader().loadUserStoreAttributeMappingChanges();
    } catch (IdentityUserStoreServerException e) {
        log.error("Error occurred while reading userstore attribute mappings configuration files.", e);
    }
    if (MapUtils.isNotEmpty(defaultAttributeMappings) && MapUtils.isNotEmpty(attributeMappingChanges)) {
        for (Map.Entry<String, Map<String, ChangedUserStoreAttribute>> entry : attributeMappingChanges.entrySet()) {
            Map<String, UserStoreAttribute> tempMap = getModifiedAttributeMap(defaultAttributeMappings, entry.getValue());
            userStoreAttributeMappings.put(entry.getKey(), tempMap);
        }
    }
    if (MapUtils.isNotEmpty(defaultAttributeMappings)) {
        mappings.setDefaultUserStoreAttributeMappings(defaultAttributeMappings);
    } else {
        mappings.setDefaultUserStoreAttributeMappings(Collections.emptyMap());
    }
    if (MapUtils.isNotEmpty(userStoreAttributeMappings)) {
        mappings.setUserStoreAttributeMappings(userStoreAttributeMappings);
    } else {
        mappings.setUserStoreAttributeMappings(Collections.emptyMap());
    }
    UserStoreConfigListenersHolder.getInstance().setUserStoreAttributeMappings(mappings);
}
Also used : UserStoreAttributeMappings(org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttributeMappings) IdentityUserStoreServerException(org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreServerException) UserStoreAttributeMappingChangesLoader(org.wso2.carbon.identity.user.store.configuration.utils.UserStoreAttributeMappingChangesLoader) HashMap(java.util.HashMap) DefaultUserStoreAttributeConfigLoader(org.wso2.carbon.identity.user.store.configuration.utils.DefaultUserStoreAttributeConfigLoader) HashMap(java.util.HashMap) Map(java.util.Map) UserStoreAttribute(org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttribute) ChangedUserStoreAttribute(org.wso2.carbon.identity.user.store.configuration.model.ChangedUserStoreAttribute)

Aggregations

HashMap (java.util.HashMap)2 ChangedUserStoreAttribute (org.wso2.carbon.identity.user.store.configuration.model.ChangedUserStoreAttribute)2 UserStoreAttribute (org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttribute)2 IdentityUserStoreServerException (org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreServerException)2 Iterator (java.util.Iterator)1 Map (java.util.Map)1 Response (javax.ws.rs.core.Response)1 QName (javax.xml.namespace.QName)1 OMElement (org.apache.axiom.om.OMElement)1 StAXOMBuilder (org.apache.axiom.om.impl.builder.StAXOMBuilder)1 APIError (org.wso2.carbon.identity.api.server.common.error.APIError)1 ErrorResponse (org.wso2.carbon.identity.api.server.common.error.ErrorResponse)1 ConnectionEstablishedResponse (org.wso2.carbon.identity.api.server.userstore.v1.model.ConnectionEstablishedResponse)1 UserStoreAttributeMappingResponse (org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreAttributeMappingResponse)1 UserStoreListResponse (org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreListResponse)1 UserStoreResponse (org.wso2.carbon.identity.api.server.userstore.v1.model.UserStoreResponse)1 UserStoreAttributeMappings (org.wso2.carbon.identity.user.store.configuration.model.UserStoreAttributeMappings)1 DefaultUserStoreAttributeConfigLoader (org.wso2.carbon.identity.user.store.configuration.utils.DefaultUserStoreAttributeConfigLoader)1 IdentityUserStoreClientException (org.wso2.carbon.identity.user.store.configuration.utils.IdentityUserStoreClientException)1 UserStoreAttributeMappingChangesLoader (org.wso2.carbon.identity.user.store.configuration.utils.UserStoreAttributeMappingChangesLoader)1