Search in sources :

Example 1 with FileEncryptionUtility

use of org.wso2.carbon.apimgt.core.impl.FileEncryptionUtility 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 2 with FileEncryptionUtility

use of org.wso2.carbon.apimgt.core.impl.FileEncryptionUtility 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 3 with FileEncryptionUtility

use of org.wso2.carbon.apimgt.core.impl.FileEncryptionUtility in project carbon-apimgt by wso2.

the class KubernetesGatewayImpl method resolveToken.

/**
 * Get the token after decrypting using {@link FileEncryptionUtility#readFromEncryptedFile(java.lang.String)}
 *
 * @return service account token
 * @throws ContainerBasedGatewayException if an error occurs while resolving the token
 */
private String resolveToken(String encryptedTokenFileName) throws ContainerBasedGatewayException {
    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 ContainerBasedGatewayException(msg, e, ExceptionCodes.ERROR_INITIALIZING_DEDICATED_CONTAINER_BASED_GATEWAY);
    }
    return StringUtils.replace(token, "\n", "");
}
Also used : APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) ContainerBasedGatewayException(org.wso2.carbon.apimgt.core.exception.ContainerBasedGatewayException)

Example 4 with FileEncryptionUtility

use of org.wso2.carbon.apimgt.core.impl.FileEncryptionUtility in project carbon-apimgt by wso2.

the class FileEncryptionUtilityTestCase method testEncryptFiles.

@Test(priority = 2, description = "Test complete flow of encrypting files")
public void testEncryptFiles() throws Exception {
    FileEncryptionConfigurations config = new FileEncryptionConfigurations();
    List<String> filesToEncrypt = new ArrayList<>();
    filesToEncrypt.add(testFileToEncrypt);
    config.setFilesToEncrypt(filesToEncrypt);
    SecureVault secureVault = Mockito.mock(SecureVault.class);
    FileEncryptionUtility fileEncryptionUtility = FileEncryptionUtility.getInstance();
    fileEncryptionUtility.setConfig(config);
    fileEncryptionUtility.setAesKeyFileLocation();
    fileEncryptionUtility.setSecureVault(secureVault);
    Answer nonEncryptedAesKey = invocation -> {
        Object[] args = invocation.getArguments();
        return args[0];
    };
    Mockito.when(secureVault.encrypt(Mockito.anyString().getBytes())).thenAnswer(nonEncryptedAesKey);
    Mockito.when(secureVault.decrypt(Mockito.anyString().getBytes())).thenAnswer(nonEncryptedAesKey);
    fileEncryptionUtility.createAndStoreAESKey();
    fileEncryptionUtility.encryptFiles();
    Assert.assertTrue(Files.notExists(Paths.get(originalFilePath)));
    Assert.assertEquals(fileEncryptionUtility.readFromEncryptedFile(encryptedFilePath), someText);
}
Also used : AfterClass(org.testng.annotations.AfterClass) Files(java.nio.file.Files) BeforeClass(org.testng.annotations.BeforeClass) Test(org.testng.annotations.Test) File(java.io.File) APIFileUtils(org.wso2.carbon.apimgt.core.util.APIFileUtils) ArrayList(java.util.ArrayList) Mockito(org.mockito.Mockito) Answer(org.mockito.stubbing.Answer) APIManagementException(org.wso2.carbon.apimgt.core.exception.APIManagementException) List(java.util.List) Assert(org.testng.Assert) Paths(java.nio.file.Paths) APIMgtDAOException(org.wso2.carbon.apimgt.core.exception.APIMgtDAOException) SecureVault(org.wso2.carbon.secvault.SecureVault) FileEncryptionConfigurations(org.wso2.carbon.apimgt.core.configuration.models.FileEncryptionConfigurations) FileEncryptionConfigurations(org.wso2.carbon.apimgt.core.configuration.models.FileEncryptionConfigurations) Answer(org.mockito.stubbing.Answer) SecureVault(org.wso2.carbon.secvault.SecureVault) ArrayList(java.util.ArrayList) Test(org.testng.annotations.Test)

Aggregations

APIManagementException (org.wso2.carbon.apimgt.core.exception.APIManagementException)4 HikariDataSource (com.zaxxer.hikari.HikariDataSource)1 File (java.io.File)1 Files (java.nio.file.Files)1 Paths (java.nio.file.Paths)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Context (javax.naming.Context)1 NamingException (javax.naming.NamingException)1 Mockito (org.mockito.Mockito)1 Answer (org.mockito.stubbing.Answer)1 BundleContext (org.osgi.framework.BundleContext)1 Activate (org.osgi.service.component.annotations.Activate)1 Assert (org.testng.Assert)1 AfterClass (org.testng.annotations.AfterClass)1 BeforeClass (org.testng.annotations.BeforeClass)1 Test (org.testng.annotations.Test)1 Broker (org.wso2.carbon.apimgt.core.api.Broker)1 FileEncryptionConfigurations (org.wso2.carbon.apimgt.core.configuration.models.FileEncryptionConfigurations)1 DataSource (org.wso2.carbon.apimgt.core.dao.impl.DataSource)1