Мы используем S4SDK для доступа к службе назначения. он должен работать в среде с несколькими арендаторами. Обычно, если приложение является интерфейсным приложением, контекст запроса запускается запросом пользователя. Доступ к целевому сервису с мультитенантностью возможен с помощью approuter и XUAA. В нашем случае наше приложение находится за RabbitMQ, которое не запускается запросом пользователя (например, вызовом REST API). В настоящее время мы используем класс com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor из облачного SDK. мы можем получить идентификатор арендатора из сообщения (RabbitMQ/AMQP). Проблема в том, что мы не можем найти способ внедрить идентификатор клиента или клонировать токен JWT в DestinationAccessor из S4SDK. Мы ищем способ/руководство, как этого добиться. Мы ожидаем, что этот токен обмена/клонирования предоставляется SDK.
Вы должны иметь возможность использовать JwtBasedRequestContextExecutor для этой цели.
new JwtBasedRequestContextExecutor()
.withJwt(encodedJwt)
.execute(() -> {
// code using the SAP Cloud SDK
});