如何使用配置了主体传播的目标从java后端进行后续API调用

如何使用配置了主体传播的目标从java后端进行后续API调用,java,odata,jwt-auth,sap-cloud-sdk,Java,Odata,Jwt Auth,Sap Cloud Sdk,我们无法从主要传播目的地的Java后端代码(cloud s4/sdk.maven-tomee-arch类型)进行后续API调用 用例: 初始API调用工作正常,因为请求通过app router从UI5触发到我们的java后端,因为app router将获得适当的oauth令牌(JWT),身份将传播到java后端代码,并将其传递到S/4Hana系统,我们将返回ODATA响应 当我们试图从Java后端代码进行后续API调用时,我们得到了403(授权异常)。 为此,我们尝试将JwtBasedReque

我们无法从主要传播目的地的Java后端代码(cloud s4/sdk.maven-tomee-arch类型)进行后续API调用

用例:

  • 初始API调用工作正常,因为请求通过app router从UI5触发到我们的java后端,因为app router将获得适当的oauth令牌(JWT),身份将传播到java后端代码,并将其传递到S/4Hana系统,我们将返回ODATA响应

  • 当我们试图从Java后端代码进行后续API调用时,我们得到了403(授权异常)。 为此,我们尝试将JwtBasedRequestContextExecutor类与JWT()和XSUAAServiceJWT()合并在一起,得到以下错误

  • com.sap.cloud.sdk.cloudplatform.exception.ShouldNotHappenException:无法设置当前上下文:com.sap.cloud.sdk.frameworks.hystrix.HystrixRequestContextFacade返回的RequestContext已初始化。您是否正确配置了接口com.sap.cloud.sdk.cloudplatform.servlet.RequestContextFactory


    如果您能为这个用例提供帮助,将不胜感激

    此错误消息告诉我们,您已经有了一个
    RequestContextExecutor
    包装您的代码。这可以是SDK
    WebFilter
    提供的一个,它“拦截”传入请求并提取相关信息。这似乎已经起作用了,因为您可以进行初始呼叫。一个潜在的修复方法(无论如何都鼓励)是升级到SDK的版本3。在那里,我们重新编写了整个
    JwtBasedRequestContextExecutor
    ,它可能已经解决了这个问题。详情请参见。嗨,迪内什,这已经解决了你的问题吗?