diff --git a/src/main/java/com/uid2/shared/cloud/InMemoryStorageMock.java b/src/main/java/com/uid2/shared/cloud/InMemoryStorageMock.java index a636773a..03901260 100644 --- a/src/main/java/com/uid2/shared/cloud/InMemoryStorageMock.java +++ b/src/main/java/com/uid2/shared/cloud/InMemoryStorageMock.java @@ -46,8 +46,7 @@ public InputStream download(String cloudPath) throws CloudStorageException { } byte[] content = data.clone(); - ByteArrayInputStream inputStream = new ByteArrayInputStream(content); - return inputStream; + return new ByteArrayInputStream(content); } @Override diff --git a/src/main/java/com/uid2/shared/store/reader/RotatingClientKeyProvider.java b/src/main/java/com/uid2/shared/store/reader/RotatingClientKeyProvider.java index 10ce710d..ea6cd439 100644 --- a/src/main/java/com/uid2/shared/store/reader/RotatingClientKeyProvider.java +++ b/src/main/java/com/uid2/shared/store/reader/RotatingClientKeyProvider.java @@ -37,7 +37,7 @@ ... ] */ -public class RotatingClientKeyProvider implements IClientKeyProvider, IMetadataVersionedStore { +public class RotatingClientKeyProvider implements IClientKeyProvider, StoreReader> { private final ScopedStoreReader> reader; public RotatingClientKeyProvider(ICloudStorage fileStreamProvider, StoreScope scope) { this.reader = new ScopedStoreReader<>(fileStreamProvider, scope, new ClientParser(), "auth keys"); diff --git a/src/main/java/com/uid2/shared/store/reader/RotatingKeyAclProvider.java b/src/main/java/com/uid2/shared/store/reader/RotatingKeyAclProvider.java index 05edfd6f..6f450813 100644 --- a/src/main/java/com/uid2/shared/store/reader/RotatingKeyAclProvider.java +++ b/src/main/java/com/uid2/shared/store/reader/RotatingKeyAclProvider.java @@ -1,15 +1,19 @@ package com.uid2.shared.store.reader; import com.uid2.shared.auth.AclSnapshot; +import com.uid2.shared.auth.EncryptionKeyAcl; import com.uid2.shared.cloud.ICloudStorage; -import com.uid2.shared.store.*; +import com.uid2.shared.store.CloudPath; +import com.uid2.shared.store.IKeyAclProvider; +import com.uid2.shared.store.ScopedStoreReader; import com.uid2.shared.store.parser.KeyAclParser; import com.uid2.shared.store.scope.StoreScope; import io.vertx.core.json.JsonObject; import java.time.Instant; +import java.util.Map; -public class RotatingKeyAclProvider implements IKeyAclProvider, IMetadataVersionedStore { +public class RotatingKeyAclProvider implements IKeyAclProvider, StoreReader> { private final ScopedStoreReader reader; public RotatingKeyAclProvider(ICloudStorage fileStreamProvider, StoreScope scope) { @@ -33,6 +37,12 @@ public long loadContent(JsonObject metadata) throws Exception { return reader.loadContent(metadata, "keys_acl"); } + @Override + public Map getAll() { + return reader.getSnapshot().getAllAcls(); + } + + @Override public void loadContent() throws Exception { this.loadContent(this.getMetadata()); } diff --git a/src/main/java/com/uid2/shared/store/reader/RotatingKeyStore.java b/src/main/java/com/uid2/shared/store/reader/RotatingKeyStore.java index d392c447..a3caff3d 100644 --- a/src/main/java/com/uid2/shared/store/reader/RotatingKeyStore.java +++ b/src/main/java/com/uid2/shared/store/reader/RotatingKeyStore.java @@ -1,6 +1,7 @@ package com.uid2.shared.store.reader; import com.uid2.shared.cloud.ICloudStorage; +import com.uid2.shared.model.EncryptionKey; import com.uid2.shared.store.CloudPath; import com.uid2.shared.store.IKeyStore; import com.uid2.shared.store.ScopedStoreReader; @@ -9,6 +10,7 @@ import io.vertx.core.json.JsonObject; import java.time.Instant; +import java.util.Collection; /* 1. metadata.json format @@ -41,7 +43,7 @@ ] */ -public class RotatingKeyStore implements IKeyStore, IMetadataVersionedStore { +public class RotatingKeyStore implements IKeyStore, StoreReader> { private final ScopedStoreReader reader; public RotatingKeyStore(ICloudStorage fileStreamProvider, StoreScope scope) { @@ -75,6 +77,12 @@ public long loadContent(JsonObject metadata) throws Exception { return reader.loadContent(metadata, "keys"); } + @Override + public Collection getAll() { + return reader.getSnapshot().getActiveKeySet(); + } + + @Override public void loadContent() throws Exception { this.loadContent(this.getMetadata()); } diff --git a/src/main/java/com/uid2/shared/store/reader/StoreReader.java b/src/main/java/com/uid2/shared/store/reader/StoreReader.java new file mode 100644 index 00000000..44b0441b --- /dev/null +++ b/src/main/java/com/uid2/shared/store/reader/StoreReader.java @@ -0,0 +1,9 @@ +package com.uid2.shared.store.reader; + +import io.vertx.core.json.JsonObject; + +public interface StoreReader extends IMetadataVersionedStore { + T getAll(); + void loadContent() throws Exception; + JsonObject getMetadata() throws Exception; +}