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);