Skip to content

Commit f3b6b98

Browse files
committed
Added more fixes and optimizations
1 parent 90ec421 commit f3b6b98

File tree

5 files changed

+80
-105
lines changed

5 files changed

+80
-105
lines changed

src/main/java/com/uid2/admin/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ public void run() {
260260
new ServiceService(auth, writeLock, serviceStoreWriter, serviceProvider, siteProvider, serviceLinkProvider),
261261
new ServiceLinkService(auth, writeLock, serviceLinkStoreWriter, serviceLinkProvider, serviceProvider, siteProvider),
262262
new OperatorKeyService(config, auth, writeLock, operatorKeyStoreWriter, operatorKeyProvider, siteProvider, keyGenerator, keyHasher, cloudEncryptionKeyManager),
263-
new SaltService(auth, writeLock, saltStoreWriter, saltProvider, saltRotation, config, jobDispatcher, rotatingCloudEncryptionKeyProvider),
263+
new SaltService(auth, writeLock, saltStoreWriter, saltProvider, saltRotation),
264264
new SiteService(auth, writeLock, siteStoreWriter, siteProvider, clientKeyProvider),
265265
new PartnerConfigService(auth, writeLock, partnerStoreWriter, partnerConfigProvider),
266266
new PrivateSiteDataRefreshService(auth, jobDispatcher, writeLock, config),

src/main/java/com/uid2/admin/job/jobsync/PrivateSiteDataSyncJob.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void execute() throws Exception {
117117
clientKeyStoreFactory.getGlobalReader().loadContent();
118118
encryptionKeyStoreFactory.getGlobalReader().loadContent();
119119
keyAclStoreFactory.getGlobalReader().loadContent();
120-
if(config.getBoolean(enableKeysetConfigProp)) {
120+
if (config.getBoolean(enableKeysetConfigProp)) {
121121
keysetStoreFactory.getGlobalReader().loadContent();
122122
keysetKeyStoreFactory.getGlobalReader().loadContent();
123123
}
@@ -163,7 +163,7 @@ public void execute() throws Exception {
163163
clientSyncJob.execute();
164164
encryptionKeySyncJob.execute();
165165
keyAclSyncJob.execute();
166-
if(config.getBoolean(enableKeysetConfigProp)) {
166+
if (config.getBoolean(enableKeysetConfigProp)) {
167167
Map<Integer, Keyset> globalKeysets = keysetStoreFactory.getGlobalReader().getSnapshot().getAllKeysets();
168168
Collection<KeysetKey> globalKeysetKeys = keysetKeyStoreFactory.getGlobalReader().getSnapshot().getAllKeysetKeys();
169169
Integer globalMaxKeysetKeyId = keysetKeyStoreFactory.getGlobalReader().getMetadata().getInteger("max_key_id");

src/main/java/com/uid2/admin/salt/SaltRotation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ private SaltEntry.KeyMaterial calculateCurrentKeySalt(SaltEntry bucket, boolean
171171
if (enableV4RawUid) {
172172
return new SaltEntry.KeyMaterial(
173173
keyIdGenerator.getNextKeyId(),
174-
this.keyGenerator.generateRandomKeyString(24), // TODO: FIX
174+
this.keyGenerator.generateRandomKeyString(24),
175175
this.keyGenerator.generateRandomKeyString(32)
176176
);
177177
} else {

src/main/java/com/uid2/admin/store/writer/SaltStoreWriter.java

Lines changed: 13 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ public void upload(RotatingSaltProvider.SaltSnapshot data) throws Exception {
4848
}
4949

5050
public void upload(RotatingSaltProvider.SaltSnapshot data, int iterations) throws Exception {
51-
this.buildAndUploadMetadata(this.getSnapshots(data, iterations));
51+
List<RotatingSaltProvider.SaltSnapshot> snapshots = this.getSnapshots(data, iterations);
52+
this.buildAndUploadMetadata(snapshots);
53+
this.deleteOtherSnapshots(snapshots);
5254
refreshProvider();
5355
}
5456

@@ -103,36 +105,18 @@ private List<RotatingSaltProvider.SaltSnapshot> getSnapshots(RotatingSaltProvide
103105
return filteredSnapshots;
104106
}
105107

106-
private List<RotatingSaltProvider.SaltSnapshot> getSnapshots(RotatingSaltProvider.SaltSnapshot data){
107-
if (provider.getSnapshots() == null) {
108-
throw new IllegalStateException("Snapshots cannot be null");
109-
}
110-
final Instant now = Instant.now();
111-
List<RotatingSaltProvider.SaltSnapshot> currentSnapshots = provider.getSnapshots();
112-
List<RotatingSaltProvider.SaltSnapshot> snapshots = null;
113-
snapshots = Stream.concat(currentSnapshots.stream(), Stream.of(data))
114-
.sorted(Comparator.comparing(RotatingSaltProvider.SaltSnapshot::getEffective))
115-
.toList();
116-
RotatingSaltProvider.SaltSnapshot newestEffectiveSnapshot = snapshots.stream()
117-
.filter(snapshot -> snapshot.isEffective(now))
118-
.reduce((a, b) -> b).orElse(null);
119-
120-
List<RotatingSaltProvider.SaltSnapshot> filteredSnapshots = new ArrayList<>();
108+
private List<RotatingSaltProvider.SaltSnapshot> getSnapshots(RotatingSaltProvider.SaltSnapshot data) {
109+
return getSnapshots(data, 0);
110+
}
121111

122-
for (RotatingSaltProvider.SaltSnapshot snapshot : snapshots) {
123-
if (!now.isBefore(snapshot.getExpires())) {
124-
LOGGER.info("Skipping expired snapshot, effective=" + snapshot.getEffective() + ", expires=" + snapshot.getExpires());
125-
continue;
126-
}
127-
if (newestEffectiveSnapshot != null && snapshot != newestEffectiveSnapshot) {
128-
LOGGER.info("Skipping effective snapshot, effective=" + snapshot.getEffective() + ", expires=" + snapshot.getExpires()
129-
+ " in favour of newer snapshot, effective=" + newestEffectiveSnapshot.getEffective() + ", expires=" + newestEffectiveSnapshot.getExpires());
130-
continue;
131-
}
132-
filteredSnapshots.add(snapshot);
133-
newestEffectiveSnapshot = null;
112+
private void deleteOtherSnapshots(List<RotatingSaltProvider.SaltSnapshot> filteredSnapshots) {
113+
List<RotatingSaltProvider.SaltSnapshot> currentSnapshots = provider.getSnapshots();
114+
List<RotatingSaltProvider.SaltSnapshot> outdatedSnapshots = currentSnapshots.stream().filter(snapshot -> !filteredSnapshots.contains(snapshot)).toList();
115+
try {
116+
this.cloudStorage.delete(outdatedSnapshots.stream().map(this::getSaltSnapshotLocation).toList());
117+
} catch (Exception e) {
118+
LOGGER.error("Error deleting snapshots", e);
134119
}
135-
return filteredSnapshots;
136120
}
137121

138122
protected JsonObject getMetadata() throws Exception {

0 commit comments

Comments
 (0)