如何使用S4 Cloud SDK Connectivity访问RabbitMQ背后的目标服务

时间:2019-05-29 18:32:46

标签: java jwt s4sdk sap-cloud-sdk

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

1 个答案:

答案 0 :(得分:2)

您应该可以为此目的使用JwtBasedRequestContextExecutor

new JwtBasedRequestContextExecutor()
    .withJwt(encodedJwt)
    .execute(() -> {
        // code using the SAP Cloud SDK
    });