Skip to content

Commit

Permalink
chore: remove in-mem vault
Browse files Browse the repository at this point in the history
  • Loading branch information
paullatzelsperger committed Jun 16, 2023
1 parent d41c59f commit afe71a8
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 130 deletions.
1 change: 1 addition & 0 deletions edc-controlplane/edc-runtime-memory/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ dependencies {
}
runtimeOnly(project(":edc-dataplane:edc-dataplane-base"))
runtimeOnly(libs.edc.core.controlplane)
testImplementation(libs.edc.junit)
}

tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,27 @@
*/
package org.eclipse.tractusx.edc.vault.memory;

import org.eclipse.edc.runtime.metamodel.annotation.BaseExtension;
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.runtime.metamodel.annotation.Provider;
import org.eclipse.edc.runtime.metamodel.annotation.Provides;
import org.eclipse.edc.runtime.metamodel.annotation.Setting;
import org.eclipse.edc.spi.security.CertificateResolver;
import org.eclipse.edc.spi.security.PrivateKeyResolver;
import org.eclipse.edc.spi.security.Vault;
import org.eclipse.edc.spi.security.VaultCertificateResolver;
import org.eclipse.edc.spi.security.VaultPrivateKeyResolver;
import org.eclipse.edc.spi.system.ServiceExtension;
import org.eclipse.edc.spi.system.ServiceExtensionContext;

import java.util.stream.Stream;

@Provides({PrivateKeyResolver.class, CertificateResolver.class})
@Extension(value = "In-memory vault extension", categories = {"vault", "security"})
public class VaultMemoryExtension implements ServiceExtension {
@Extension(value = "Vault seed extension: adds secrets to the vault", categories = {"vault", "security"})
@BaseExtension
public class VaultSeedExtension implements ServiceExtension {

@Setting(value = "Secrets with which the vault gets initially populated. Specify as comma-separated list of key:secret pairs.")
public static final String VAULT_MEMORY_SECRETS_PROPERTY = "edc.vault.secrets";
public static final String NAME = "In-Memory Vault Extension";
public static final String NAME = "Vault Seed Extension";

@Inject
private Vault vault;

@Override
public String name() {
Expand All @@ -43,9 +43,6 @@ public String name() {
@Provider
public Vault createInMemVault(ServiceExtensionContext context) {
var seedSecrets = context.getSetting(VAULT_MEMORY_SECRETS_PROPERTY, null);
var vault = new InMemoryVault(context.getMonitor());
context.registerService(PrivateKeyResolver.class, new VaultPrivateKeyResolver(vault));
context.registerService(CertificateResolver.class, new VaultCertificateResolver(vault));
if (seedSecrets != null) {
Stream.of(seedSecrets.split(";"))
.filter(pair -> pair.contains(":"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
# SPDX-License-Identifier: Apache-2.0
#

org.eclipse.tractusx.edc.vault.memory.VaultMemoryExtension
org.eclipse.tractusx.edc.vault.memory.VaultSeedExtension

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,43 +14,51 @@

package org.eclipse.tractusx.edc.vault.memory;

import org.eclipse.edc.connector.core.vault.InMemoryVault;
import org.eclipse.edc.junit.extensions.DependencyInjectionExtension;
import org.eclipse.edc.spi.monitor.Monitor;
import org.eclipse.edc.spi.security.Vault;
import org.eclipse.edc.spi.system.ServiceExtensionContext;
import org.eclipse.edc.spi.system.injection.ObjectFactory;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

class VaultMemoryExtensionTest {
private VaultMemoryExtension extension;
@ExtendWith(DependencyInjectionExtension.class)
class VaultSeedExtensionTest {
private VaultSeedExtension extension;
private ServiceExtensionContext context;
private Monitor monitor;

@BeforeEach
void setup() {
extension = new VaultMemoryExtension();
context = mock(ServiceExtensionContext.class);
void setup(ServiceExtensionContext context, ObjectFactory factory) {
this.context = spy(context);
monitor = mock(Monitor.class);
when(context.getMonitor()).thenReturn(monitor);
context.registerService(Monitor.class, monitor);
context.registerService(Vault.class, new InMemoryVault(monitor));
extension = factory.constructInstance(VaultSeedExtension.class);
}

@Test
void name() {
assertThat(extension.name()).isEqualTo("In-Memory Vault Extension");
assertThat(extension.name()).isEqualTo("Vault Seed Extension");
}

@ParameterizedTest
@ValueSource(strings = {"key1:", "key1:value1", "key1:value1;", ";key1:value1", ";sdf;key1:value1"})
void createInMemVault_validString(String secret) {
when(context.getSetting(eq(VaultMemoryExtension.VAULT_MEMORY_SECRETS_PROPERTY), eq(null))).thenReturn(secret);
when(context.getSetting(eq(VaultSeedExtension.VAULT_MEMORY_SECRETS_PROPERTY), eq(null))).thenReturn(secret);
extension.createInMemVault(context);
verify(monitor, times(1)).debug(anyString());
}
Expand Down

0 comments on commit afe71a8

Please sign in to comment.