Skip to content

Commit 36808ea

Browse files
Server options: allow re-use of credentials
1 parent 91c66ff commit 36808ea

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

objectbox-java/src/main/java/io/objectbox/sync/server/SyncServerBuilder.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,14 @@ byte[] buildSyncServerOptions() {
274274
}
275275
int authenticationMethodsOffset = buildAuthenticationMethods(fbb);
276276
int clusterPeersVectorOffset = buildClusterPeers(fbb);
277+
// Clear credentials immediately to make abuse less likely,
278+
// but only after setting all options to allow re-using the same credentials object.
279+
for (SyncCredentialsToken credential : credentials) {
280+
credential.clear();
281+
}
282+
for (ClusterPeerInfo peer : clusterPeers) {
283+
peer.credentials.clear();
284+
}
277285

278286
// After collecting all offsets, create options
279287
SyncServerOptions.startSyncServerOptions(fbb);
@@ -332,11 +340,7 @@ private int buildCredentials(FlatBufferBuilder fbb, SyncCredentialsToken tokenCr
332340
if (tokenBytesOffset != 0) {
333341
Credentials.addBytes(fbb, tokenBytesOffset);
334342
}
335-
int credentialsOffset = Credentials.endCredentials(fbb);
336-
337-
tokenCredentials.clear(); // Clear immediately, not needed anymore.
338-
339-
return credentialsOffset;
343+
return Credentials.endCredentials(fbb);
340344
}
341345

342346
private int buildClusterPeers(FlatBufferBuilder fbb) {

0 commit comments

Comments
 (0)