diff --git a/pom.xml b/pom.xml
index 42d41e13a..2111ad52d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
1.12.2
5.11.2
- 9.1.0
+ 9.2.0
0.5.10
${project.version}
diff --git a/src/main/java/com/uid2/admin/Main.java b/src/main/java/com/uid2/admin/Main.java
index 1c0f0ee50..25caf0560 100644
--- a/src/main/java/com/uid2/admin/Main.java
+++ b/src/main/java/com/uid2/admin/Main.java
@@ -39,7 +39,7 @@
import com.uid2.shared.jmx.AdminApi;
import com.uid2.shared.model.Site;
import com.uid2.shared.store.CloudPath;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import com.uid2.shared.store.reader.*;
import com.uid2.shared.store.scope.GlobalScope;
import com.uid2.shared.util.HTTPPathMetricFilter;
diff --git a/src/main/java/com/uid2/admin/job/EncryptionJob/SaltEncryptionJob.java b/src/main/java/com/uid2/admin/job/EncryptionJob/SaltEncryptionJob.java
index 8ebae0b26..074fea26d 100644
--- a/src/main/java/com/uid2/admin/job/EncryptionJob/SaltEncryptionJob.java
+++ b/src/main/java/com/uid2/admin/job/EncryptionJob/SaltEncryptionJob.java
@@ -7,7 +7,7 @@
import com.uid2.admin.util.PublicSiteUtil;
import com.uid2.shared.auth.OperatorKey;
import com.uid2.shared.model.SaltEntry;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import java.util.Collection;
import java.util.List;
diff --git a/src/main/java/com/uid2/admin/job/jobsync/EncryptedFilesSyncJob.java b/src/main/java/com/uid2/admin/job/jobsync/EncryptedFilesSyncJob.java
index 594445dd9..18e24adec 100644
--- a/src/main/java/com/uid2/admin/job/jobsync/EncryptedFilesSyncJob.java
+++ b/src/main/java/com/uid2/admin/job/jobsync/EncryptedFilesSyncJob.java
@@ -22,7 +22,7 @@
import com.uid2.shared.model.Site;
import com.uid2.shared.store.CloudPath;
import com.uid2.admin.legacy.LegacyClientKey;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import com.uid2.shared.store.reader.RotatingCloudEncryptionKeyProvider;
import com.uid2.shared.store.scope.GlobalScope;
import io.vertx.core.json.JsonObject;
diff --git a/src/main/java/com/uid2/admin/secret/ISaltRotation.java b/src/main/java/com/uid2/admin/secret/ISaltRotation.java
index 4d36c0fe2..f01104af6 100644
--- a/src/main/java/com/uid2/admin/secret/ISaltRotation.java
+++ b/src/main/java/com/uid2/admin/secret/ISaltRotation.java
@@ -1,6 +1,6 @@
package com.uid2.admin.secret;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import java.time.Duration;
diff --git a/src/main/java/com/uid2/admin/secret/SaltRotation.java b/src/main/java/com/uid2/admin/secret/SaltRotation.java
index 9343ea731..6a92f18b6 100644
--- a/src/main/java/com/uid2/admin/secret/SaltRotation.java
+++ b/src/main/java/com/uid2/admin/secret/SaltRotation.java
@@ -2,7 +2,7 @@
import com.uid2.shared.model.SaltEntry;
import com.uid2.shared.secret.IKeyGenerator;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import io.vertx.core.json.JsonObject;
import java.time.Duration;
@@ -77,7 +77,7 @@ private void addIndexesToRotate(List entryIndexes,
int maxIndexes) {
final SaltEntry[] entries = lastSnapshot.getAllRotatingSalts();
final List candidateIndexes = IntStream.range(0, entries.length)
- .filter(i -> isBetween(entries[i].getLastUpdated(), minLastUpdated, maxLastUpdated))
+ .filter(i -> isBetween(entries[i].lastUpdated(), minLastUpdated, maxLastUpdated))
.boxed().collect(toList());
if (candidateIndexes.size() <= maxIndexes) {
entryIndexes.addAll(candidateIndexes);
@@ -103,7 +103,7 @@ private RotatingSaltProvider.SaltSnapshot createRotatedSnapshot(RotatingSaltProv
for (Integer i : entryIndexes) {
final SaltEntry oldSalt = nextSnapshot.getAllRotatingSalts()[i];
final String secret = this.keyGenerator.generateRandomKeyString(32);
- nextSnapshot.getAllRotatingSalts()[i] = new SaltEntry(oldSalt.getId(), oldSalt.getHashedId(), lastUpdated, secret);
+ nextSnapshot.getAllRotatingSalts()[i] = new SaltEntry(oldSalt.id(), oldSalt.hashedId(), lastUpdated, secret, null, null, null, null);
}
return nextSnapshot;
}
diff --git a/src/main/java/com/uid2/admin/store/factory/SaltStoreFactory.java b/src/main/java/com/uid2/admin/store/factory/SaltStoreFactory.java
index 8261e9425..25cdbd7db 100644
--- a/src/main/java/com/uid2/admin/store/factory/SaltStoreFactory.java
+++ b/src/main/java/com/uid2/admin/store/factory/SaltStoreFactory.java
@@ -4,11 +4,10 @@
import com.uid2.admin.store.version.VersionGenerator;
import com.uid2.admin.store.writer.EncryptedSaltStoreWriter;
import com.uid2.admin.store.writer.StoreWriter;
-import com.uid2.shared.Const;
import com.uid2.shared.cloud.TaggableCloudStorage;
import com.uid2.shared.store.CloudPath;
-import com.uid2.shared.store.EncryptedRotatingSaltProvider;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.EncryptedRotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import com.uid2.shared.store.reader.RotatingCloudEncryptionKeyProvider;
import com.uid2.shared.store.reader.StoreReader;
import com.uid2.shared.store.scope.EncryptedScope;
diff --git a/src/main/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriter.java b/src/main/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriter.java
index 8f3e16b9e..aa2180eda 100644
--- a/src/main/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriter.java
+++ b/src/main/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriter.java
@@ -8,7 +8,7 @@
import com.uid2.shared.model.CloudEncryptionKey;
import com.uid2.shared.model.SaltEntry;
import com.uid2.shared.store.CloudPath;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import com.uid2.shared.store.reader.RotatingCloudEncryptionKeyProvider;
import com.uid2.shared.store.scope.StoreScope;
import org.slf4j.Logger;
@@ -85,7 +85,7 @@ protected boolean tryUploadSaltsSnapshot(RotatingSaltProvider.SaltSnapshot snaps
StringBuilder stringBuilder = new StringBuilder();
for (SaltEntry entry: snapshot.getAllRotatingSalts()) {
- stringBuilder.append(entry.getId()).append(",").append(entry.getLastUpdated()).append(",").append(entry.getSalt()).append("\n");
+ stringBuilder.append(entry.id()).append(",").append(entry.lastUpdated()).append(",").append(entry.currentSalt()).append("\n");
}
String data = stringBuilder.toString();
diff --git a/src/main/java/com/uid2/admin/store/writer/SaltStoreWriter.java b/src/main/java/com/uid2/admin/store/writer/SaltStoreWriter.java
index ab4a65d83..a3557830e 100644
--- a/src/main/java/com/uid2/admin/store/writer/SaltStoreWriter.java
+++ b/src/main/java/com/uid2/admin/store/writer/SaltStoreWriter.java
@@ -7,7 +7,7 @@
import com.uid2.shared.cloud.TaggableCloudStorage;
import com.uid2.shared.model.SaltEntry;
import com.uid2.shared.store.CloudPath;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import org.slf4j.Logger;
@@ -54,7 +54,7 @@ private List getSnapshots(RotatingSaltProvide
List snapshots = null;
snapshots = Stream.concat(currentSnapshots.stream(), Stream.of(data))
.sorted(Comparator.comparing(RotatingSaltProvider.SaltSnapshot::getEffective))
- .collect(Collectors.toList());
+ .toList();
RotatingSaltProvider.SaltSnapshot newestEffectiveSnapshot = snapshots.stream()
.filter(snapshot -> snapshot.isEffective(now))
.reduce((a, b) -> b).orElse(null);
@@ -203,7 +203,7 @@ protected boolean tryUploadSaltsSnapshot(RotatingSaltProvider.SaltSnapshot snaps
final Path newSaltsFile = Files.createTempFile("operators", ".txt");
try (BufferedWriter w = Files.newBufferedWriter(newSaltsFile)) {
for (SaltEntry entry : snapshot.getAllRotatingSalts()) {
- w.write(entry.getId() + "," + entry.getLastUpdated() + "," + entry.getSalt() + "\n");
+ w.write(entry.id() + "," + entry.lastUpdated() + "," + entry.currentSalt() + "\n");
}
}
this.upload(newSaltsFile.toString(), location);
diff --git a/src/main/java/com/uid2/admin/util/PrivateSiteUtil.java b/src/main/java/com/uid2/admin/util/PrivateSiteUtil.java
index 525b9494b..6f8b9b93d 100644
--- a/src/main/java/com/uid2/admin/util/PrivateSiteUtil.java
+++ b/src/main/java/com/uid2/admin/util/PrivateSiteUtil.java
@@ -8,7 +8,7 @@
import com.uid2.shared.model.KeysetKey;
import com.uid2.shared.model.SaltEntry;
import com.uid2.shared.model.Site;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/com/uid2/admin/util/PublicSiteUtil.java b/src/main/java/com/uid2/admin/util/PublicSiteUtil.java
index 815454b49..6f7bd7b8c 100644
--- a/src/main/java/com/uid2/admin/util/PublicSiteUtil.java
+++ b/src/main/java/com/uid2/admin/util/PublicSiteUtil.java
@@ -7,7 +7,7 @@
import com.uid2.shared.auth.OperatorKey;
import com.uid2.shared.auth.OperatorType;
import com.uid2.shared.model.*;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/com/uid2/admin/vertx/service/SaltService.java b/src/main/java/com/uid2/admin/vertx/service/SaltService.java
index 88ec92511..811963313 100644
--- a/src/main/java/com/uid2/admin/vertx/service/SaltService.java
+++ b/src/main/java/com/uid2/admin/vertx/service/SaltService.java
@@ -8,7 +8,7 @@
import com.uid2.admin.vertx.WriteLock;
import com.uid2.shared.auth.Role;
import com.uid2.shared.model.SaltEntry;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import io.vertx.core.http.HttpHeaders;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
@@ -109,10 +109,10 @@ private JsonObject toJson(RotatingSaltProvider.SaltSnapshot snapshot) {
jo.put("expires", snapshot.getExpires().toEpochMilli());
jo.put("salts_count", snapshot.getAllRotatingSalts().length);
jo.put("min_last_updated", Arrays.stream(snapshot.getAllRotatingSalts())
- .map(SaltEntry::getLastUpdated)
+ .map(SaltEntry::lastUpdated)
.min(Long::compare).orElse(null));
jo.put("max_last_updated", Arrays.stream(snapshot.getAllRotatingSalts())
- .map(SaltEntry::getLastUpdated)
+ .map(SaltEntry::lastUpdated)
.max(Long::compare).orElse(null));
return jo;
}
diff --git a/src/test/java/com/uid2/admin/secret/SaltRotationTest.java b/src/test/java/com/uid2/admin/secret/SaltRotationTest.java
index 8acfa094a..fabdbeb83 100644
--- a/src/test/java/com/uid2/admin/secret/SaltRotationTest.java
+++ b/src/test/java/com/uid2/admin/secret/SaltRotationTest.java
@@ -2,7 +2,7 @@
import com.uid2.shared.model.SaltEntry;
import com.uid2.shared.secret.IKeyGenerator;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import io.vertx.core.json.JsonObject;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -48,7 +48,7 @@ private SnapshotBuilder() {}
public SnapshotBuilder withEntries(int count, Instant lastUpdated) {
for (int i = 0; i < count; ++i) {
- entries.add(new SaltEntry(entries.size(), "h", lastUpdated.toEpochMilli(), "salt" + entries.size()));
+ entries.add(new SaltEntry(entries.size(), "h", lastUpdated.toEpochMilli(), "salt" + entries.size(), null, null, null, null));
}
return this;
}
@@ -60,7 +60,7 @@ public RotatingSaltProvider.SaltSnapshot build(Instant effective, Instant expire
}
private int countEntriesWithLastUpdated(SaltEntry[] entries, Instant lastUpdated) {
- return (int)Arrays.stream(entries).filter(e -> e.getLastUpdated() == lastUpdated.toEpochMilli()).count();
+ return (int)Arrays.stream(entries).filter(e -> e.lastUpdated() == lastUpdated.toEpochMilli()).count();
}
private static void assertEqualsClose(Instant expected, Instant actual, int withinSeconds) {
diff --git a/src/test/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriterTest.java b/src/test/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriterTest.java
index b2ea0a7f2..cc4123891 100644
--- a/src/test/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriterTest.java
+++ b/src/test/java/com/uid2/admin/store/writer/EncryptedSaltStoreWriterTest.java
@@ -7,7 +7,7 @@
import com.uid2.shared.model.CloudEncryptionKey;
import com.uid2.shared.model.SaltEntry;
import com.uid2.shared.store.CloudPath;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import com.uid2.shared.store.reader.RotatingCloudEncryptionKeyProvider;
import com.uid2.shared.store.scope.StoreScope;
import io.vertx.core.json.JsonArray;
@@ -84,7 +84,7 @@ public void setup() throws Exception {
private RotatingSaltProvider.SaltSnapshot makeSnapshot(Instant effective, Instant expires, int nsalts) {
SaltEntry[] entries = new SaltEntry[nsalts];
for (int i = 0; i < entries.length; ++i) {
- entries[i] = new SaltEntry(i, "hashed_id", effective.toEpochMilli(), "salt");
+ entries[i] = new SaltEntry(i, "hashed_id", effective.toEpochMilli(), "salt", null, null, null, null);
}
return new RotatingSaltProvider.SaltSnapshot(effective, expires, entries, "test_first_level_salt");
}
@@ -96,8 +96,8 @@ private void verifyFile(String filelocation, RotatingSaltProvider.SaltSnapshot s
int idx = 0;
for (String line : contents.split("\n")) {
String[] entrySplit = line.split(",");
- assertEquals(entries[idx].getId(), Long.parseLong(entrySplit[0]));
- assertEquals(entries[idx].getSalt(), entrySplit[2]);
+ assertEquals(entries[idx].id(), Long.parseLong(entrySplit[0]));
+ assertEquals(entries[idx].currentSalt(), entrySplit[2]);
idx++;
}
}
diff --git a/src/test/java/com/uid2/admin/vertx/SaltServiceTest.java b/src/test/java/com/uid2/admin/vertx/SaltServiceTest.java
index b701c1cc8..43b634183 100644
--- a/src/test/java/com/uid2/admin/vertx/SaltServiceTest.java
+++ b/src/test/java/com/uid2/admin/vertx/SaltServiceTest.java
@@ -6,7 +6,7 @@
import com.uid2.admin.vertx.test.ServiceTestBase;
import com.uid2.shared.auth.Role;
import com.uid2.shared.model.SaltEntry;
-import com.uid2.shared.store.RotatingSaltProvider;
+import com.uid2.shared.store.salt.RotatingSaltProvider;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
import io.vertx.junit5.VertxTestContext;
@@ -47,7 +47,7 @@ private void setSnapshots(RotatingSaltProvider.SaltSnapshot... snapshots) {
private RotatingSaltProvider.SaltSnapshot makeSnapshot(Instant effective, Instant expires, int nsalts) {
SaltEntry[] entries = new SaltEntry[nsalts];
for (int i = 0; i < entries.length; ++i) {
- entries[i] = new SaltEntry(i, "hashed_id", effective.toEpochMilli(), "salt");
+ entries[i] = new SaltEntry(i, "hashed_id", effective.toEpochMilli(), "salt", null, null, null, null);
}
return new RotatingSaltProvider.SaltSnapshot(effective, expires, entries, "test_first_level_salt");
}