Search in sources :

Example 1 with FederatedAuthenticatorListResponse

use of org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListResponse in project identity-api-server by wso2.

the class ServerIdpManagementService method createFederatedAuthenticatorResponse.

private FederatedAuthenticatorListResponse createFederatedAuthenticatorResponse(IdentityProvider idp) {
    FederatedAuthenticatorConfig[] fedAuthConfigs = idp.getFederatedAuthenticatorConfigs();
    FederatedAuthenticatorListResponse fedAuthIDPResponse = new FederatedAuthenticatorListResponse();
    List<FederatedAuthenticatorListItem> authenticators = new ArrayList<>();
    for (FederatedAuthenticatorConfig fedAuthConfig : fedAuthConfigs) {
        FederatedAuthenticatorListItem fedAuthListItem = new FederatedAuthenticatorListItem();
        fedAuthListItem.setAuthenticatorId(base64URLEncode(fedAuthConfig.getName()));
        fedAuthListItem.setName(fedAuthConfig.getName());
        fedAuthListItem.setIsEnabled(fedAuthConfig.isEnabled());
        FederatedAuthenticatorConfig federatedAuthenticatorConfig = ApplicationAuthenticatorService.getInstance().getFederatedAuthenticatorByName(fedAuthConfig.getName());
        if (federatedAuthenticatorConfig != null) {
            String[] tags = federatedAuthenticatorConfig.getTags();
            if (ArrayUtils.isNotEmpty(tags)) {
                fedAuthListItem.setTags(Arrays.asList(tags));
            }
        }
        fedAuthListItem.setSelf(ContextLoader.buildURIForBody(String.format(V1_API_PATH_COMPONENT + IDP_PATH_COMPONENT + "/%s/federated-authenticators/%s", idp.getResourceId(), base64URLEncode(fedAuthConfig.getName()))).toString());
        authenticators.add(fedAuthListItem);
    }
    fedAuthIDPResponse.setDefaultAuthenticatorId(idp.getDefaultAuthenticatorConfig() != null ? base64URLEncode(idp.getDefaultAuthenticatorConfig().getName()) : null);
    fedAuthIDPResponse.setAuthenticators(authenticators);
    return fedAuthIDPResponse;
}
Also used : FederatedAuthenticatorConfig(org.wso2.carbon.identity.application.common.model.FederatedAuthenticatorConfig) ArrayList(java.util.ArrayList) MetaFederatedAuthenticatorListItem(org.wso2.carbon.identity.api.server.idp.v1.model.MetaFederatedAuthenticatorListItem) FederatedAuthenticatorListItem(org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListItem) FederatedAuthenticatorListResponse(org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListResponse)

Example 2 with FederatedAuthenticatorListResponse

use of org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListResponse in project identity-api-server by wso2.

the class ServerIdpManagementService method getFederatedAuthenticators.

/**
 * Returns configured federated authenticators of a specific identity provider.
 *
 * @param idpId Identity provider resource ID.
 * @return FederatedAuthenticatorListResponse Federated authenticator list.
 */
public FederatedAuthenticatorListResponse getFederatedAuthenticators(String idpId) {
    FederatedAuthenticatorListResponse listResponse;
    try {
        IdentityProvider idP = IdentityProviderServiceHolder.getIdentityProviderManager().getIdPByResourceId(idpId, ContextLoader.getTenantDomainFromContext(), true);
        if (idP == null) {
            throw handleException(Response.Status.NOT_FOUND, Constants.ErrorMessage.ERROR_CODE_IDP_NOT_FOUND, idpId);
        }
        listResponse = new FederatedAuthenticatorListResponse();
        FederatedAuthenticatorConfig[] fedAuthConfigs = idP.getFederatedAuthenticatorConfigs();
        if (fedAuthConfigs != null) {
            List<FederatedAuthenticatorListItem> fedAuthList = new ArrayList<>();
            String defaultAuthenticator = null;
            for (FederatedAuthenticatorConfig config : fedAuthConfigs) {
                String fedAuthId = base64URLEncode(config.getName());
                FederatedAuthenticatorListItem listItem = new FederatedAuthenticatorListItem();
                listItem.setAuthenticatorId(fedAuthId);
                listItem.setName(config.getName());
                listItem.setIsEnabled(config.isEnabled());
                FederatedAuthenticatorConfig federatedAuthenticatorConfig = ApplicationAuthenticatorService.getInstance().getFederatedAuthenticatorByName(config.getName());
                if (federatedAuthenticatorConfig != null) {
                    String[] tags = federatedAuthenticatorConfig.getTags();
                    if (ArrayUtils.isNotEmpty(tags)) {
                        listItem.setTags(Arrays.asList(tags));
                    }
                }
                listItem.setSelf(ContextLoader.buildURIForBody(String.format(V1_API_PATH_COMPONENT + IDP_PATH_COMPONENT + "/%s/federated-authenticators/%s", idpId, fedAuthId)).toString());
                fedAuthList.add(listItem);
                if (idP.getDefaultAuthenticatorConfig() != null) {
                    defaultAuthenticator = base64URLEncode(idP.getDefaultAuthenticatorConfig().getName());
                }
            }
            listResponse.setDefaultAuthenticatorId(defaultAuthenticator);
            listResponse.setAuthenticators(fedAuthList);
        }
    } catch (IdentityProviderManagementException e) {
        throw handleIdPException(e, Constants.ErrorMessage.ERROR_CODE_ERROR_RETRIEVING_IDP_AUTHENTICATORS, idpId);
    }
    return listResponse;
}
Also used : FederatedAuthenticatorConfig(org.wso2.carbon.identity.application.common.model.FederatedAuthenticatorConfig) ArrayList(java.util.ArrayList) MetaFederatedAuthenticatorListItem(org.wso2.carbon.identity.api.server.idp.v1.model.MetaFederatedAuthenticatorListItem) FederatedAuthenticatorListItem(org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListItem) IdentityProvider(org.wso2.carbon.identity.application.common.model.IdentityProvider) FederatedAuthenticatorListResponse(org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListResponse) IdentityProviderManagementException(org.wso2.carbon.idp.mgt.IdentityProviderManagementException)

Example 3 with FederatedAuthenticatorListResponse

use of org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListResponse in project identity-api-server by wso2.

the class ServerIdpManagementService method updateFederatedAuthenticators.

/**
 * Update federated authenticator of and IDP.
 *
 * @param idpId                Identity Provider resource ID.
 * @param authenticatorRequest Federated Authenticators Request.
 * @return FederatedAuthenticatorListResponse.
 */
public FederatedAuthenticatorListResponse updateFederatedAuthenticators(String idpId, FederatedAuthenticatorRequest authenticatorRequest) {
    try {
        IdentityProvider idp = IdentityProviderServiceHolder.getIdentityProviderManager().getIdPByResourceId(idpId, ContextLoader.getTenantDomainFromContext(), true);
        if (idp == null) {
            throw handleException(Response.Status.NOT_FOUND, Constants.ErrorMessage.ERROR_CODE_IDP_NOT_FOUND, idpId);
        }
        // Need to create a clone, since modifying the fields of the original object, will modify the cached
        // IDP object.
        IdentityProvider idpToUpdate = createIdPClone(idp);
        updateFederatedAuthenticatorConfig(idpToUpdate, authenticatorRequest);
        IdentityProvider updatedIdp = IdentityProviderServiceHolder.getIdentityProviderManager().updateIdPByResourceId(idpId, idpToUpdate, ContextLoader.getTenantDomainFromContext());
        return createFederatedAuthenticatorResponse(updatedIdp);
    } catch (IdentityProviderManagementException e) {
        throw handleIdPException(e, Constants.ErrorMessage.ERROR_CODE_ERROR_UPDATING_IDP, null);
    }
}
Also used : IdentityProvider(org.wso2.carbon.identity.application.common.model.IdentityProvider) IdentityProviderManagementException(org.wso2.carbon.idp.mgt.IdentityProviderManagementException)

Aggregations

ArrayList (java.util.ArrayList)2 FederatedAuthenticatorListItem (org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListItem)2 FederatedAuthenticatorListResponse (org.wso2.carbon.identity.api.server.idp.v1.model.FederatedAuthenticatorListResponse)2 MetaFederatedAuthenticatorListItem (org.wso2.carbon.identity.api.server.idp.v1.model.MetaFederatedAuthenticatorListItem)2 FederatedAuthenticatorConfig (org.wso2.carbon.identity.application.common.model.FederatedAuthenticatorConfig)2 IdentityProvider (org.wso2.carbon.identity.application.common.model.IdentityProvider)2 IdentityProviderManagementException (org.wso2.carbon.idp.mgt.IdentityProviderManagementException)2