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