Search in sources :

Example 1 with Vault

use of org.eclipse.dataspaceconnector.spi.security.Vault in project DataSpaceConnector by eclipse-dataspaceconnector.

the class CosmosContractNegotiationStoreExtension method initialize.

@Override
public void initialize(ServiceExtensionContext context) {
    var configuration = new CosmosContractNegotiationStoreConfig(context);
    Vault vault = context.getService(Vault.class);
    var cosmosDbApi = new CosmosDbApiImpl(vault, configuration);
    var store = new CosmosContractNegotiationStore(cosmosDbApi, context.getTypeManager(), (RetryPolicy<Object>) context.getService(RetryPolicy.class), configuration.getPartitionKey());
    context.registerService(ContractNegotiationStore.class, store);
    context.getTypeManager().registerTypes(ContractNegotiationDocument.class);
    context.getService(HealthCheckService.class).addReadinessProvider(() -> cosmosDbApi.get().forComponent(name()));
}
Also used : HealthCheckService(org.eclipse.dataspaceconnector.spi.system.health.HealthCheckService) Vault(org.eclipse.dataspaceconnector.spi.security.Vault) CosmosDbApiImpl(org.eclipse.dataspaceconnector.azure.cosmos.CosmosDbApiImpl)

Example 2 with Vault

use of org.eclipse.dataspaceconnector.spi.security.Vault in project DataSpaceConnector by eclipse-dataspaceconnector.

the class CosmosAssetIndexExtension method initialize.

@Override
public void initialize(ServiceExtensionContext context) {
    var configuration = new AssetIndexCosmosConfig(context);
    Vault vault = context.getService(Vault.class);
    var cosmosDbApi = new CosmosDbApiImpl(vault, configuration);
    var assetIndex = new CosmosAssetIndex(cosmosDbApi, configuration.getPartitionKey(), context.getTypeManager(), context.getService(RetryPolicy.class));
    context.registerService(AssetIndex.class, assetIndex);
    context.registerService(AssetLoader.class, assetIndex);
    context.registerService(DataAddressResolver.class, assetIndex);
    context.getService(HealthCheckService.class).addReadinessProvider(() -> cosmosDbApi.get().forComponent(name()));
    context.getTypeManager().registerTypes(AssetDocument.class);
}
Also used : HealthCheckService(org.eclipse.dataspaceconnector.spi.system.health.HealthCheckService) Vault(org.eclipse.dataspaceconnector.spi.security.Vault) RetryPolicy(net.jodah.failsafe.RetryPolicy) CosmosDbApiImpl(org.eclipse.dataspaceconnector.azure.cosmos.CosmosDbApiImpl)

Example 3 with Vault

use of org.eclipse.dataspaceconnector.spi.security.Vault in project DataSpaceConnector by eclipse-dataspaceconnector.

the class TransferProcessManagerImplTest method deprovisioning_shouldTransitionToDeprovisioned.

@Test
void deprovisioning_shouldTransitionToDeprovisioned() throws InterruptedException {
    var manifest = ResourceManifest.Builder.newInstance().definitions(List.of(new TestResourceDefinition())).build();
    var resourceSet = ProvisionedResourceSet.Builder.newInstance().resources(List.of(new TokenTestProvisionResource("test", PROVISIONED_RESOURCE_ID))).build();
    var process = createTransferProcess(DEPROVISIONING).toBuilder().resourceManifest(manifest).provisionedResourceSet(resourceSet).build();
    var deprovisionResult = StatusResult.success(DeprovisionedResource.Builder.newInstance().provisionedResourceId(PROVISIONED_RESOURCE_ID).build());
    when(policyArchive.findPolicyForContract(anyString())).thenReturn(Policy.Builder.newInstance().build());
    when(vault.deleteSecret(any())).thenReturn(Result.success());
    when(provisionManager.deprovision(any(), isA(Policy.class))).thenReturn(completedFuture(List.of(deprovisionResult)));
    when(transferProcessStore.nextForState(eq(DEPROVISIONING.code()), anyInt())).thenReturn(List.of(process)).thenReturn(emptyList());
    when(transferProcessStore.find(process.getId())).thenReturn(process);
    var latch = countDownOnUpdateLatch();
    manager.start();
    assertThat(latch.await(TIMEOUT, TimeUnit.SECONDS)).isTrue();
    verify(policyArchive, atLeastOnce()).findPolicyForContract(anyString());
    verify(transferProcessStore).update(argThat(p -> p.getState() == DEPROVISIONED.code()));
    verify(vault).deleteSecret(any());
}
Also used : Policy(org.eclipse.dataspaceconnector.policy.model.Policy) BeforeEach(org.junit.jupiter.api.BeforeEach) PROVISIONING(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.PROVISIONING) TestProvisionedDataDestinationResource(org.eclipse.dataspaceconnector.transfer.core.TestProvisionedDataDestinationResource) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) TypeManager(org.eclipse.dataspaceconnector.spi.types.TypeManager) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) DataAddressResolver(org.eclipse.dataspaceconnector.spi.asset.DataAddressResolver) CompletableFuture.completedFuture(java.util.concurrent.CompletableFuture.completedFuture) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ExponentialWaitStrategy(org.eclipse.dataspaceconnector.spi.retry.ExponentialWaitStrategy) TransferProcess(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcess) PROVISIONED(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.PROVISIONED) Mockito.verifyNoInteractions(org.mockito.Mockito.verifyNoInteractions) ProvisionManager(org.eclipse.dataspaceconnector.spi.transfer.provision.ProvisionManager) Mockito.doThrow(org.mockito.Mockito.doThrow) DataFlowManager(org.eclipse.dataspaceconnector.spi.transfer.flow.DataFlowManager) Map(java.util.Map) Mockito.doAnswer(org.mockito.Mockito.doAnswer) SecretToken(org.eclipse.dataspaceconnector.spi.types.domain.transfer.SecretToken) StatusCheckerRegistry(org.eclipse.dataspaceconnector.spi.types.domain.transfer.StatusCheckerRegistry) PolicyArchive(org.eclipse.dataspaceconnector.spi.policy.store.PolicyArchive) TestResourceDefinition(org.eclipse.dataspaceconnector.transfer.core.TestResourceDefinition) ERROR(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.ERROR) Collections.emptyList(java.util.Collections.emptyList) ENDED(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.ENDED) Mockito.atLeastOnce(org.mockito.Mockito.atLeastOnce) EdcException(org.eclipse.dataspaceconnector.spi.EdcException) PROVIDER(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcess.Type.PROVIDER) DEPROVISIONED(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.DEPROVISIONED) UUID(java.util.UUID) JsonPOJOBuilder(com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder) StatusResult(org.eclipse.dataspaceconnector.spi.response.StatusResult) Instant(java.time.Instant) TransferProcessStore(org.eclipse.dataspaceconnector.spi.transfer.store.TransferProcessStore) DataAddress(org.eclipse.dataspaceconnector.spi.types.domain.DataAddress) Test(org.junit.jupiter.api.Test) DeprovisionedResource(org.eclipse.dataspaceconnector.spi.types.domain.transfer.DeprovisionedResource) CountDownLatch(java.util.concurrent.CountDownLatch) CompletableFuture.failedFuture(java.util.concurrent.CompletableFuture.failedFuture) List(java.util.List) TransferType(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferType) ProvisionResponse(org.eclipse.dataspaceconnector.spi.types.domain.transfer.ProvisionResponse) UTC(java.time.ZoneOffset.UTC) CommandQueue(org.eclipse.dataspaceconnector.spi.command.CommandQueue) ProvisionedDataDestinationResource(org.eclipse.dataspaceconnector.spi.types.domain.transfer.ProvisionedDataDestinationResource) JsonDeserialize(com.fasterxml.jackson.databind.annotation.JsonDeserialize) REQUESTING(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.REQUESTING) ProvisionedContentResource(org.eclipse.dataspaceconnector.spi.types.domain.transfer.ProvisionedContentResource) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Result(org.eclipse.dataspaceconnector.spi.result.Result) CommandRunner(org.eclipse.dataspaceconnector.spi.command.CommandRunner) JsonTypeName(com.fasterxml.jackson.annotation.JsonTypeName) DEPROVISIONING(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.DEPROVISIONING) TransferProcessObservable(org.eclipse.dataspaceconnector.spi.transfer.observe.TransferProcessObservable) REQUESTED(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.REQUESTED) STREAMING(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.STREAMING) IN_PROGRESS(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.IN_PROGRESS) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) CONSUMER(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcess.Type.CONSUMER) ArgumentMatchers.isA(org.mockito.ArgumentMatchers.isA) ResponseStatus(org.eclipse.dataspaceconnector.spi.response.ResponseStatus) ResourceManifest(org.eclipse.dataspaceconnector.spi.types.domain.transfer.ResourceManifest) Policy(org.eclipse.dataspaceconnector.policy.model.Policy) ResourceManifestGenerator(org.eclipse.dataspaceconnector.spi.transfer.provision.ResourceManifestGenerator) ProvisionedResourceSet(org.eclipse.dataspaceconnector.spi.types.domain.transfer.ProvisionedResourceSet) DataRequest(org.eclipse.dataspaceconnector.spi.types.domain.transfer.DataRequest) Mockito.times(org.mockito.Mockito.times) Vault(org.eclipse.dataspaceconnector.spi.security.Vault) Mockito.when(org.mockito.Mockito.when) DisplayName(org.junit.jupiter.api.DisplayName) Mockito.verify(org.mockito.Mockito.verify) TimeUnit(java.util.concurrent.TimeUnit) COMPLETED(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.COMPLETED) Mockito.never(org.mockito.Mockito.never) JsonCreator(com.fasterxml.jackson.annotation.JsonCreator) RemoteMessageDispatcherRegistry(org.eclipse.dataspaceconnector.spi.message.RemoteMessageDispatcherRegistry) Clock(java.time.Clock) INITIAL(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates.INITIAL) TransferProcessStates(org.eclipse.dataspaceconnector.spi.types.domain.transfer.TransferProcessStates) Monitor(org.eclipse.dataspaceconnector.spi.monitor.Monitor) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) TestResourceDefinition(org.eclipse.dataspaceconnector.transfer.core.TestResourceDefinition) Test(org.junit.jupiter.api.Test)

Example 4 with Vault

use of org.eclipse.dataspaceconnector.spi.security.Vault in project DataSpaceConnector by eclipse-dataspaceconnector.

the class ObjectContainerStatusCheckerIntegrationTest method setUp.

@BeforeEach
void setUp() {
    var policy = new RetryPolicy<>().withMaxRetries(1);
    helloTxt = TestUtils.getFileFromResourceName("hello.txt");
    Vault vault = mock(Vault.class);
    when(vault.resolveSecret(account1Name + "-key1")).thenReturn(account1Key);
    var blobStoreApi = new BlobStoreApiImpl(vault, getEndpoint(account1Name));
    checker = new ObjectContainerStatusChecker(blobStoreApi, policy);
}
Also used : BlobStoreApiImpl(org.eclipse.dataspaceconnector.azure.blob.core.api.BlobStoreApiImpl) Vault(org.eclipse.dataspaceconnector.spi.security.Vault) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 5 with Vault

use of org.eclipse.dataspaceconnector.spi.security.Vault in project DataSpaceConnector by eclipse-dataspaceconnector.

the class MultipartDispatcherIntegrationTest method init.

@BeforeEach
void init() {
    Monitor monitor = mock(Monitor.class);
    transformerRegistry = mock(IdsTransformerRegistry.class);
    Vault vault = mock(Vault.class);
    var httpClient = testOkHttpClient();
    var idsWebhookAddress = "http://webhook/api";
    multipartDispatcher = new IdsMultipartRemoteMessageDispatcher();
    multipartDispatcher.register(new MultipartDescriptionRequestSender(CONNECTOR_ID, httpClient, objectMapper, monitor, identityService, transformerRegistry));
    multipartDispatcher.register(new MultipartArtifactRequestSender(CONNECTOR_ID, httpClient, objectMapper, monitor, vault, identityService, transformerRegistry, idsWebhookAddress));
    multipartDispatcher.register(new MultipartContractOfferSender(CONNECTOR_ID, httpClient, objectMapper, monitor, identityService, transformerRegistry, idsWebhookAddress));
    multipartDispatcher.register(new MultipartContractAgreementSender(CONNECTOR_ID, httpClient, objectMapper, monitor, identityService, transformerRegistry, idsWebhookAddress));
    multipartDispatcher.register(new MultipartContractRejectionSender(CONNECTOR_ID, httpClient, objectMapper, monitor, identityService, transformerRegistry));
    multipartDispatcher.register(new MultipartCatalogDescriptionRequestSender(CONNECTOR_ID, httpClient, objectMapper, monitor, identityService, transformerRegistry));
}
Also used : MultipartDescriptionRequestSender(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.sender.MultipartDescriptionRequestSender) Monitor(org.eclipse.dataspaceconnector.spi.monitor.Monitor) IdsMultipartRemoteMessageDispatcher(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.IdsMultipartRemoteMessageDispatcher) MultipartContractOfferSender(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.sender.MultipartContractOfferSender) MultipartContractAgreementSender(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.sender.MultipartContractAgreementSender) MultipartContractRejectionSender(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.sender.MultipartContractRejectionSender) Vault(org.eclipse.dataspaceconnector.spi.security.Vault) IdsTransformerRegistry(org.eclipse.dataspaceconnector.ids.spi.transform.IdsTransformerRegistry) MultipartCatalogDescriptionRequestSender(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.sender.MultipartCatalogDescriptionRequestSender) MultipartArtifactRequestSender(org.eclipse.dataspaceconnector.ids.api.multipart.dispatcher.sender.MultipartArtifactRequestSender) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

Vault (org.eclipse.dataspaceconnector.spi.security.Vault)8 Monitor (org.eclipse.dataspaceconnector.spi.monitor.Monitor)4 BeforeEach (org.junit.jupiter.api.BeforeEach)4 CosmosDbApiImpl (org.eclipse.dataspaceconnector.azure.cosmos.CosmosDbApiImpl)2 HealthCheckService (org.eclipse.dataspaceconnector.spi.system.health.HealthCheckService)2 JsonCreator (com.fasterxml.jackson.annotation.JsonCreator)1 JsonTypeName (com.fasterxml.jackson.annotation.JsonTypeName)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 JsonDeserialize (com.fasterxml.jackson.databind.annotation.JsonDeserialize)1 JsonPOJOBuilder (com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder)1 Clock (java.time.Clock)1 Instant (java.time.Instant)1 UTC (java.time.ZoneOffset.UTC)1 Collections.emptyList (java.util.Collections.emptyList)1 List (java.util.List)1 Map (java.util.Map)1 UUID (java.util.UUID)1 CompletableFuture.completedFuture (java.util.concurrent.CompletableFuture.completedFuture)1 CompletableFuture.failedFuture (java.util.concurrent.CompletableFuture.failedFuture)1 CountDownLatch (java.util.concurrent.CountDownLatch)1