Search in sources :

Example 21 with APIManagementException

use of org.wso2.carbon.apimgt.api.APIManagementException in project carbon-apimgt by wso2.

the class APIMgtAdminServiceImpl method addSubscriptionPolicy.

@Override
public String addSubscriptionPolicy(SubscriptionPolicy policy) throws APIManagementException {
    try {
        String policyUuid = policy.getUuid();
        if (policyUuid == null) {
            if (log.isDebugEnabled()) {
                log.debug("Policy id is null, hence generating a new UUID for the policy with name: " + policy.getPolicyName());
            }
            policyUuid = UUID.randomUUID().toString();
            policy.setUuid(policyUuid);
        }
        policyDAO.addSubscriptionPolicy(policy);
        PolicyValidationData policyValidationData = new PolicyValidationData(policyUuid, policy.getPolicyName(), policy.isStopOnQuotaReach());
        apiGateway.addPolicy(policyValidationData);
        return policyUuid;
    } catch (APIMgtDAOException e) {
        String errorMessage = "Couldn't add Subscription policy for uuid: " + policy.getUuid();
        log.error(errorMessage, e);
        throw new APIManagementException(errorMessage, e, e.getErrorHandler());
    }
}
Also used : APIMgtDAOException(org.wso2.carbon.apimgt.core.exception.APIMgtDAOException) APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) PolicyValidationData(org.wso2.carbon.apimgt.core.models.PolicyValidationData)

Example 22 with APIManagementException

use of org.wso2.carbon.apimgt.api.APIManagementException in project carbon-apimgt by wso2.

the class RestCallUtilImpl method putRequest.

/**
 * {@inheritDoc}
 */
@Override
public HttpResponse putRequest(URI uri, MediaType acceptContentType, List<String> cookies, Entity entity, MediaType payloadContentType) throws APIManagementException {
    if (uri == null) {
        throw new IllegalArgumentException("The URI must not be null");
    }
    if (entity == null) {
        throw new IllegalArgumentException("Entity must not be null");
    }
    if (payloadContentType == null) {
        throw new IllegalArgumentException("Payload content type must not be null");
    }
    HttpURLConnection httpConnection = null;
    try {
        httpConnection = (HttpURLConnection) uri.toURL().openConnection();
        httpConnection.setRequestMethod(APIMgtConstants.FunctionsConstants.PUT);
        httpConnection.setRequestProperty(APIMgtConstants.FunctionsConstants.CONTENT_TYPE, payloadContentType.toString());
        httpConnection.setDoOutput(true);
        if (acceptContentType != null) {
            httpConnection.setRequestProperty(APIMgtConstants.FunctionsConstants.ACCEPT, acceptContentType.toString());
        }
        if (cookies != null && !cookies.isEmpty()) {
            for (String cookie : cookies) {
                httpConnection.addRequestProperty(APIMgtConstants.FunctionsConstants.COOKIE, cookie.split(";", 2)[0]);
            }
        }
        OutputStream outputStream = httpConnection.getOutputStream();
        outputStream.write(entity.toString().getBytes(StandardCharsets.UTF_8));
        outputStream.flush();
        outputStream.close();
        return getResponse(httpConnection);
    } catch (IOException e) {
        throw new APIManagementException("Connection not established properly ", e);
    } finally {
        if (httpConnection != null) {
            httpConnection.disconnect();
        }
    }
}
Also used : HttpURLConnection(java.net.HttpURLConnection) APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) OutputStream(java.io.OutputStream) IOException(java.io.IOException)

Example 23 with APIManagementException

use of org.wso2.carbon.apimgt.api.APIManagementException in project carbon-apimgt by wso2.

the class ServiceDiscovererKubernetes method resolveToken.

/**
 * Get the token after decrypting using {@link FileEncryptionUtility#readFromEncryptedFile(java.lang.String)}
 *
 * @return service account token
 * @throws ServiceDiscoveryException if an error occurs while resolving the token
 */
private String resolveToken(String encryptedTokenFileName) throws ServiceDiscoveryException {
    String token;
    try {
        String externalSATokenFilePath = System.getProperty(FileEncryptionUtility.CARBON_HOME) + FileEncryptionUtility.SECURITY_DIR + File.separator + encryptedTokenFileName;
        token = FileEncryptionUtility.getInstance().readFromEncryptedFile(externalSATokenFilePath);
    } catch (APIManagementException e) {
        String msg = "Error occurred while resolving externally stored token";
        throw new ServiceDiscoveryException(msg, e, ExceptionCodes.ERROR_INITIALIZING_SERVICE_DISCOVERY);
    }
    return StringUtils.replace(token, "\n", "");
}
Also used : APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) ServiceDiscoveryException(org.wso2.carbon.apimgt.core.exception.ServiceDiscoveryException)

Example 24 with APIManagementException

use of org.wso2.carbon.apimgt.api.APIManagementException in project carbon-apimgt by wso2.

the class BundleActivator method start.

@Activate
protected void start(BundleContext bundleContext) {
    try {
        // Set default timestamp to UTC
        java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Etc/UTC"));
        Context ctx = jndiContextManager.newInitialContext();
        DataSource dataSourceAMDB = new DataSourceImpl((HikariDataSource) ctx.lookup("java:comp/env/jdbc/WSO2AMDB"));
        DAOUtil.initialize(dataSourceAMDB);
        boolean isAnalyticsEnabled = ServiceReferenceHolder.getInstance().getAPIMConfiguration().getAnalyticsConfigurations().isEnabled();
        if (isAnalyticsEnabled) {
            DataSource dataSourceStatDB = new DataSourceImpl((HikariDataSource) ctx.lookup("java:comp/env/jdbc/WSO2AMSTATSDB"));
            DAOUtil.initializeAnalyticsDataSource(dataSourceStatDB);
        }
        WorkflowExtensionsConfigBuilder.build(configProvider);
        ServiceDiscoveryConfigBuilder.build(configProvider);
        ContainerBasedGatewayConfigBuilder.build(configProvider);
        BrokerManager.start();
        Broker broker = new BrokerImpl();
        BrokerUtil.initialize(broker);
    } catch (NamingException e) {
        log.error("Error occurred while jndi lookup", e);
    }
    // deploying default policies
    try {
        ThrottlerUtil.addDefaultAdvancedThrottlePolicies();
        if (log.isDebugEnabled()) {
            log.debug("Checked default throttle policies successfully");
        }
    } catch (APIManagementException e) {
        log.error("Error occurred while deploying default policies", e);
    }
    // securing files
    try {
        boolean fileEncryptionEnabled = ServiceReferenceHolder.getInstance().getAPIMConfiguration().getFileEncryptionConfigurations().isEnabled();
        if (fileEncryptionEnabled) {
            FileEncryptionUtility fileEncryptionUtility = FileEncryptionUtility.getInstance();
            fileEncryptionUtility.init();
            fileEncryptionUtility.encryptFiles();
        }
    } catch (APIManagementException e) {
        log.error("Error occurred while encrypting files", e);
    }
}
Also used : Context(javax.naming.Context) BundleContext(org.osgi.framework.BundleContext) BrokerImpl(org.wso2.carbon.apimgt.core.impl.BrokerImpl) Broker(org.wso2.carbon.apimgt.core.api.Broker) APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) FileEncryptionUtility(org.wso2.carbon.apimgt.core.impl.FileEncryptionUtility) DataSourceImpl(org.wso2.carbon.apimgt.core.dao.impl.DataSourceImpl) NamingException(javax.naming.NamingException) DataSource(org.wso2.carbon.apimgt.core.dao.impl.DataSource) HikariDataSource(com.zaxxer.hikari.HikariDataSource) Activate(org.osgi.service.component.annotations.Activate)

Example 25 with APIManagementException

use of org.wso2.carbon.apimgt.api.APIManagementException in project carbon-apimgt by wso2.

the class RestCallUtilImpl method postRequest.

/**
 * {@inheritDoc}
 */
@Override
public HttpResponse postRequest(URI uri, MediaType acceptContentType, List<String> cookies, Entity entity, MediaType payloadContentType, Map<String, String> headers) throws APIManagementException {
    if (uri == null) {
        throw new IllegalArgumentException("The URI must not be null");
    }
    if (entity == null) {
        throw new IllegalArgumentException("Entity must not be null");
    }
    if (payloadContentType == null) {
        throw new IllegalArgumentException("Payload content type must not be null");
    }
    HttpURLConnection httpConnection = null;
    try {
        httpConnection = (HttpURLConnection) uri.toURL().openConnection();
        httpConnection.setRequestMethod(APIMgtConstants.FunctionsConstants.POST);
        httpConnection.setRequestProperty(APIMgtConstants.FunctionsConstants.CONTENT_TYPE, payloadContentType.toString());
        httpConnection.setDoOutput(true);
        if (acceptContentType != null) {
            httpConnection.setRequestProperty(APIMgtConstants.FunctionsConstants.ACCEPT, acceptContentType.toString());
        }
        if (cookies != null && !cookies.isEmpty()) {
            for (String cookie : cookies) {
                httpConnection.addRequestProperty(APIMgtConstants.FunctionsConstants.COOKIE, cookie.split(";", 2)[0]);
            }
        }
        if (headers != null) {
            for (Map.Entry<String, String> header : headers.entrySet()) {
                httpConnection.addRequestProperty(header.getKey(), header.getValue());
            }
        }
        OutputStream outputStream = httpConnection.getOutputStream();
        outputStream.write(entity.getEntity().toString().getBytes(StandardCharsets.UTF_8));
        outputStream.flush();
        outputStream.close();
        return getResponse(httpConnection);
    } catch (IOException e) {
        throw new APIManagementException("Connection not established properly ", e);
    } finally {
        if (httpConnection != null) {
            httpConnection.disconnect();
        }
    }
}
Also used : HttpURLConnection(java.net.HttpURLConnection) APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) OutputStream(java.io.OutputStream) IOException(java.io.IOException) Map(java.util.Map)

Aggregations

APIManagementException (org.wso2.carbon.apimgt.api.APIManagementException)1120 Test (org.junit.Test)458 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)445 APIManagementException (org.wso2.carbon.apimgt.core.exception.APIManagementException)433 ArrayList (java.util.ArrayList)407 HashMap (java.util.HashMap)376 Test (org.testng.annotations.Test)353 IOException (java.io.IOException)274 SQLException (java.sql.SQLException)262 ApiDAO (org.wso2.carbon.apimgt.core.dao.ApiDAO)233 API (org.wso2.carbon.apimgt.api.model.API)228 PreparedStatement (java.sql.PreparedStatement)223 APIIdentifier (org.wso2.carbon.apimgt.api.model.APIIdentifier)223 Connection (java.sql.Connection)209 RegistryException (org.wso2.carbon.registry.core.exceptions.RegistryException)203 APIStore (org.wso2.carbon.apimgt.core.api.APIStore)202 API (org.wso2.carbon.apimgt.core.models.API)200 APIProvider (org.wso2.carbon.apimgt.api.APIProvider)199 SubscribedAPI (org.wso2.carbon.apimgt.api.model.SubscribedAPI)188 Response (javax.ws.rs.core.Response)183