我们正在使用S4SDK访问目标服务。它需要在多租户环境中工作。通常,如果该应用是前端应用,则请求上下文由用户请求触发。使用approuter和XUAA可以进行多租户访问目标服务。 在我们的情况下,我们的应用程序位于RabbitMQ的后面,而RabbitMQ并不是由用户请求(例如REST API调用)触发的。当前,我们正在使用来自Cloud SDK的com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor类。我们可以从消息(RabbitMQ / AMQP)中检索租户ID。问题是我们找不到从S4SDK注入租户ID或将JWT令牌克隆到DestinationAccessor的方法。我们正在寻找实现该目标的方式/指南。我们希望此交换/克隆令牌由SDK提供。
答案 0 :(得分:2)
您应该可以为此目的使用JwtBasedRequestContextExecutor。
new JwtBasedRequestContextExecutor()
.withJwt(encodedJwt)
.execute(() -> {
// code using the SAP Cloud SDK
});