From 6bda9d86048972026e3b988c34778e1593704192 Mon Sep 17 00:00:00 2001 From: Ravi Khadiwala Date: Wed, 24 Jan 2024 16:38:35 -0600 Subject: [PATCH] Set destination account on the request context --- .../textsecuregcm/controllers/MessageController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java index f2f2bed34..8b95c2b1f 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java @@ -143,6 +143,8 @@ public class MessageController { private static final Logger logger = LoggerFactory.getLogger(MessageController.class); + public static final String DESTINATION_ACCOUNT_PROPERTY_NAME = "destinationAccount"; + private final RateLimiters rateLimiters; private final CardinalityEstimator messageByteLimitEstimator; private final MessageSender messageSender; @@ -284,13 +286,14 @@ public class MessageController { } Optional destination; - if (!isSyncMessage) { destination = accountsManager.getByServiceIdentifier(destinationIdentifier); } else { destination = source.map(AuthenticatedAccount::getAccount); } + destination.ifPresent(account -> context.setProperty(DESTINATION_ACCOUNT_PROPERTY_NAME, account)); + // Stories will be checked by the client; we bypass access checks here for stories. if (!isStory) { OptionalAccess.verify(source.map(AuthenticatedAccount::getAccount), accessKey, destination);