点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好SAP Cloud SDK Java和CAP专家,
我已经创建了一个示例应用程序 epmbp-consumer-app ,该应用程序使用了自定义的OData V2服务 通过主体传播使用SAP Cloud SDK for JavaScript。 因此,通过approuter进行身份验证的用户JWT传递给CAP服务,然后用于后端服务调用:
.execute({destinationName:destinationName,jwt:jwt})
请参见 srv/service.js#L79 。 我想对适用于Java的SAP Cloud SDK执行相同的操作,但是只有在将目标设置为"基本身份验证"时,它才能正常工作。
我可以在哪里传递能够使用以下方法从CAP API中检索到的JWT:
字符串jwt = AuthenticatedUserClaimProvider.INSTANCE.getUserClaim();
由SAP Cloud SDK for Java执行的呼叫?
最诚挚的问候
格雷戈尔
Gregor,您好
除了之前建议的手动标头设置外,另一个建议是将VDM调用代码包装到Callable中,然后将其传递到AuthTokenAccessor.executeWithAuthToken()方法中。
例如:
如果这不起作用,我唯一的其他建议是尝试Java SDK的3.10.0版本。
最诚挚的问候,
巴勃罗
你好,格雷戈尔,
我不确定这是否有助于解决您的原始问题
但是请更新您的应用程序以使用SAP Cloud SDK 3.16.1
不再需要提供的解决方法。
最好的问候
亚历山大
嗨,格雷格,
您是否检查了" getUserClaim()"返回的字符串是否包含" Bearer"前缀?
如果没有,则可能需要在将标头传递到Cloud SDK之前添加。
最诚挚的问候,
马克
嗨,马克,
感谢您的回复。 使用最后提交,我已经将JWT的输出添加到了日志中。 看起来像这样:
所以像在 CatalogService.java#L95 a>是必需的。
期待您的进一步输入。
最诚挚的问候
格雷戈尔
您好,格雷格,
感谢您的举报!
请更新您的应用程序以使用最新版本的SAP Cloud SDK 3.16.1
不再需要提供的解决方法。
最好的问候
亚历山大
一周热门 更多>