From 02b5af35837d1a58d7670693f0bead933164e78f Mon Sep 17 00:00:00 2001 From: mjpt777 Date: Mon, 10 Jan 2022 12:08:05 +0000 Subject: [PATCH] [Java] Verify that authentication and authorisation service is not null in archive. --- .../java/io/aeron/archive/ArchiveConductor.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/aeron-archive/src/main/java/io/aeron/archive/ArchiveConductor.java b/aeron-archive/src/main/java/io/aeron/archive/ArchiveConductor.java index 0240699c60..b80b66f23f 100644 --- a/aeron-archive/src/main/java/io/aeron/archive/ArchiveConductor.java +++ b/aeron-archive/src/main/java/io/aeron/archive/ArchiveConductor.java @@ -18,6 +18,7 @@ import io.aeron.*; import io.aeron.archive.client.AeronArchive; import io.aeron.archive.client.ArchiveEvent; +import io.aeron.archive.client.ArchiveException; import io.aeron.archive.codecs.RecordingDescriptorDecoder; import io.aeron.archive.codecs.RecordingSignal; import io.aeron.archive.codecs.SourceLocation; @@ -88,7 +89,6 @@ abstract class ArchiveConductor new Object2ObjectHashMap<>(); private final UnsafeBuffer descriptorBuffer = new UnsafeBuffer(); private final RecordingDescriptorDecoder recordingDescriptorDecoder = new RecordingDescriptorDecoder(); - private final ControlResponseProxy controlResponseProxy = new ControlResponseProxy(); private final UnsafeBuffer counterMetadataBuffer = new UnsafeBuffer(new byte[METADATA_LENGTH]); private final Long2LongCounterMap subscriptionRefCountMap = new Long2LongCounterMap(0L); @@ -105,7 +105,8 @@ abstract class ArchiveConductor private final RecordingEventsProxy recordingEventsProxy; private final Authenticator authenticator; private final AuthorisationService authorisationService; - private final ControlSessionProxy controlSessionProxy; + private final ControlResponseProxy controlResponseProxy = new ControlResponseProxy(); + private final ControlSessionProxy controlSessionProxy = new ControlSessionProxy(controlResponseProxy); final Archive.Context ctx; SessionWorker recorder; SessionWorker replayer; @@ -139,9 +140,18 @@ abstract class ArchiveConductor catalog = ctx.catalog(); markFile = ctx.archiveMarkFile(); cachedEpochClock.update(epochClock.time()); + authenticator = ctx.authenticatorSupplier().get(); + if (null == authenticator) + { + throw new ArchiveException("authenticator cannot be null"); + } + authorisationService = ctx.authorisationServiceSupplier().get(); - controlSessionProxy = new ControlSessionProxy(controlResponseProxy); + if (null == authorisationService) + { + throw new ArchiveException("authorisation service cannot be null"); + } } public void onStart()